记一次mysql分页条件查询的结果出错:
以一张用户表为例,首先我们看表中的所有数据,注意红色框住的部分:
我们使用不带条件的分页查询来查询,数据显示是OK的:
SELECT id,login_name,create_time FROM tb_user LIMIT 0,10
当我们使用带条件的分页查询来查询,第一张图红色框住的数据会丢失(这些数据在所有的分页查询结果中都不显示):
SELECT id,login_name,create_time FROM tb_user WHERE login_name != 'admin' LIMIT 0,10
问题的解决:
mysql带条件的分页查询一定要排序,否则会出错,修改sql如下:
SELECT id,login_name,create_time FROM tb_user WHERE login_name != 'admin' ORDER BY create_time LIMIT 0,10
PS: 如果没有where条件,mysql会采用默认的排序方式,不会出错,但如果有查询条件,mysql分页排序可能会出错,所以分页最好加上 order by!