我在Mysql中使用“limit”执行两个查询:
查询一个:
SELECT * FROM staff s, department d WHERE s.departId = d.id AND s.statusid = 1 LIMIT 10;
查询二:
SELECT * FROM staff s, department d WHERE s.departId = d.id AND s.statusid = 1 LIMIT 1;
问题:
我想知道为什么第二个查询不会返回id = 100000而不是id = 100001的记录; 感谢您提前回复。
答案 0 :(得分:5)
是的,因为您还没有指定任何order by
子句,因此无法保证返回的数据顺序。如果您需要特定的结果数据订单,那么请使用order by
子句指定
order by s.departId desc
答案 1 :(得分:3)
您的任何一个查询都没有指定排序,这意味着数据库可以自由订购您的数据,但是它想要完成查询。如果您想按id
列添加ORDER BY s.id ASC
添加到您的查询中:
SELECT * FROM staff s, department d WHERE ... ORDER BY s.id ASC LIMIT 10;
SELECT * FROM staff s, department d WHERE ... ORDER BY s.id ASC LIMIT 1;
答案 2 :(得分:0)
使用order by id
子句如果要按升序返回基于id的数据,请使用order by id desc
(如果在降序中)