首 页 行业资讯 新车 试驾评测 养车用车 车型库

mysql 的order by 和limit 一起怎么用? - 技术问答

发布网友 发布时间:2022-04-21 03:15

我来回答

1个回答

热心网友 时间:2023-11-05 06:26

如果从结果集中只需要指定数量的行,请 LIMIT 在查询中使用子句,而不是获取整个结果集并丢弃多余的数据。

MySQL有时会优化具有子句和无 子句的查询: LIMIT row_count HAVING

如果多行在列中具有相同的值 ORDER BY ,则服务器可以自由以任何顺序返回这些行,并且根据整体执行计划,这样做的方式可能有所不同。换句话说,这些行的排序顺序相对于无序列是不确定的。

影响执行计划的一个因素是 LIMIT ,因此 ORDER BY 带有和不带有查询的查询 LIMIT 可能以不同顺序返回行。考虑以下查询,该查询按 category 列排序,但对于 id 和 rating 列不确定:

包含 LIMIT 可能会影响每个 category 值中的行顺序。例如,这是一个有效的查询结果:

在每种情况下,行均按 ORDER BY 列排序,这是SQL标准所需的全部。

如果重要的是要确保带有和不带有的行顺序相同 LIMIT ,则在 ORDER BY 子句中包括其他列以使顺序确定。例如,如果 id 值是唯一的,则可以通过如下排序使给定 category 值的行 按 id 顺序显示 :

参考网址: https://dev.mysql.com/doc/refman/5.7/en/limit-optimization.html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com