为什么在 MySQL 中的 ORDER 子句之后放置 LIMIT 子句?

Why a LIMIT clause is placed after ORDER clause in MySQL?

SELECT price FROM products LIMIT 1 ORDER BY price; 

这是错误的 但是

SELECT price FROM products  ORDER BY price LIMIT 1; 

没关系,为什么?

LIMIT 必须在 ORDER 之后,因为必须先进行排序。在您的第一个查询中,您只需 select products table 中列出的第一个 price。在您的第二个(也是正确的)查询中,products table 按 price 排序,然后 returns 仅按 1.

排序

是句法。同理ORDER BY必须跟在SELECTFROM

之后

您的 SELECT 语句有两 (2) 个子句:ORDER BY 和 LIMIT。

根据 MySQL SELECT 语法,子句按特定顺序定义,如下图所示 MySQL website's SELECT syntax page.

允许在 LIMIT 子句之前使用 ORDER BY 子句,但不能反过来。

简单地说,因为我们检索了一个特定的答案,所以“LIMIT”子句在“ORDER BY”子句进行的排序过程后给了我们最终的正确选择