我在使用ORDER BY时应该使用LIMIT吗?

时间:2016-08-03 23:09:15

标签: php mysql sql

我在某处读到:

  

当您使用LIMIT子句时,必须使用ORDER BY子句。如果你不这样做,你有时会惊奇地遇到不同的结果。

这是真的吗?

其实这是我的疑问:

SELECT SUM(score) score, type, context, post_id, other_id, MAX(date_time)
FROM `events` e
WHERE e.id IN ($ids)
GROUP BY type, post_id, other_id
ORDER BY (seen IS NULL) desc, MAX(date_time) desc, MAX(e.id) desc

注意: $ids是一个PHP变量,包含如下字符串:1, 2, 4, 76

我应该在查询中使用LIMIT吗?如果是/否,那么为什么?

1 个答案:

答案 0 :(得分:1)

不,如果您不想,则不必使用LIMIT(我不知道作者的意思是“令人惊讶地面对不同的结果......”)

正如您所知,ORDER BY子句指定应对结果集进行排序。同样地,{em>也知道的LIMIT指定您只想查看该结果集的第一行 n 行(已排序或不)

这两个条款完全相互独立。如果您想要查询返回的(已排序或未排除)行的全部,则您没有义务使用LIMIT,并且,事实上,不应该这样做。