Chr*_*ams 36 mysql sql sql-order-by limit
当MySQL处理查询时,哪一个首先出现?
一个例子:
SELECT pageRegions
FROM pageRegions WHERE(pageID=?) AND(published=true) AND (publishedOn<=?)
ORDER BY publishedON DESC
LIMIT 1';
Run Code Online (Sandbox Code Playgroud)
即使记录与ORDER BY后应用的修订日期时间IF LIMIT不匹配,是否会返回上次发布的pageRegion?
Ric*_*iwi 24
所述limit总是被施加在结果集的结尾,因此之后order by.
鉴于您的所有条款,处理顺序将是
因此,您将获得与WHERE子句中的所有条件匹配的最接近记录<= publishedOn.
只是想指出在限制结果之前应用 MySQL 排序的情况。但对于其他数据库则不然。
例如,Oracle 首先限制结果并对所述结果应用排序。当您从性能角度考虑时,这是有道理的。在 MySQL 中,您实际上是对整个数据库(> 1000 条记录)进行排序以获得 2