您的位置:首页 > 数据库 > MySQL

mysql limit 使用不当导致的bug

2016-12-13 15:51 267 查看
//查询状态为0的数据,并翻页返回数据,每次翻页10条。

1)select * from table_a where status=0 limit 0,10;

2)select * from table_a where status=0 and id >#{lastId} order by id limit 10;

假设满足status=0的数据一共12条。分别是id=1,2,...11,12

第一条sql语句:返回id=1-10数据后。id=2的数据、status=0被改成status=1了。这时候翻页,只返回了id=12数据。(少了id=11的数据)

而第二条sql语句,由于把上次查询的最大id作为参数传进去,而且是limit 10,不会丢失id=11的数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息