在mysql中执行如SELECT * FROM (SELECT * FROM USER ORDER BY USER_NAME) TMP LIMIT 0 20这种语句,最终结果为什么没有安装user_name排序?
解决方案
10
查询子集中的排序是不起作用的吧。
SELECT * FROM USER ORDER BY USER_NAME LIMIT 0 20
SELECT * FROM USER ORDER BY USER_NAME LIMIT 0 20
30
SELECT * FROM (SELECT * FROM USER ORDER BY USER_NAME) TMP LIMIT 0 20
这种写法,你看看执行计划,应该会用到临时表,文件排序,所以不能保证排序后的结果集,会按照排序的顺序插入到临时表中。
这种写法,你看看执行计划,应该会用到临时表,文件排序,所以不能保证排序后的结果集,会按照排序的顺序插入到临时表中。