我是靠谱客的博主 可耐蓝天,最近开发中收集的这篇文章主要介绍mysql中,写limit得记得排序……,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

用mysql的limit进行分页。。发现竟然有些数据没显示在页面上。。总共才24条数据。楞找不到。。 
后来把语句弄到mysql上查了一下才知道。这条语句中的limit有问题。。有些数据在第二页被重复显示了。。 
非常郁闷。。下面给截图 
查第一页的语句 


 

 

SQL code
SELECT * FROM article a where a.type in ( 1 , 2 , 4 ) limit 0 , 20 ;

第一页的结果 
(注意红色部分) 
第二页的语句 
 

SQL code
SELECT * FROM article a where a.type in ( 1 , 2 , 4 ) limit 20 , 20 ;

 

结果: 
(注意红色部分) 
--------------------------------------------------------------------------
后来发现排下序就没事了。。原来用MySQL的limit必须排序。。唉
这是一位网友给的MySQL Help:
If you use LIMIT row_count with ORDER BY, MySQL ends the sorting as soon as it has found the first row_count rows of the sorted result, rather than sorting the entire result. If ordering is done by using an index, this is very fast. If a filesort must be done, all rows that match the query without the LIMIT clause must be selected, and most or all of them must be sorted, before it can be ascertained that the first row_count rows have been found. In either case, after the initial rows have been found, there is no need to sort any remainder of the result set, and MySQL does not do so.

 

总结:用limit必须先order by~ 顺序是 ------  先 order by ....  再 limit ......

最后

以上就是可耐蓝天为你收集整理的mysql中,写limit得记得排序……的全部内容,希望文章能够帮你解决mysql中,写limit得记得排序……所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部