MySQL“;“限制”;返回错误的结果

MySQL“;“限制”;返回错误的结果,mysql,sql,database,Mysql,Sql,Database,我在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=

我在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的记录;
感谢您提前回复。

是的,这是因为您没有指定任何
order by
子句,因此无法保证返回数据的顺序。如果需要结果数据的特定顺序,请使用
orderby
子句指定

order by s.departId desc

您的两个查询都没有指定排序,这意味着数据库可以随意对数据进行排序,但它希望完成查询。如果要按
id
列排序,请将
ORDER by s.id ASC
添加到查询中:

从d部门员工s中选择*,其中。。。s.id ASC限制10的订单;
从职员s、部门d中选择*,其中。。。s.id ASC限额1下的订单;

如果要以升序返回基于id的数据,请使用
按id排序
子句。如果以降序返回数据,请使用
按id排序
如果绝对没有代码支持此问题。这里只有一个屏幕截图。你的验收记录也不太好。添加
按S.ID asc订购
,在这种情况下,屏幕截图会比代码好,这清楚地解释了我的问题。不,屏幕截图从来都不好。以后一定要把它作为文本发布。@SaiLiu,你看到弗雷德二世的评论了吗。不要只是说谢谢,而是接受答案来表达你的感激之情。不一定是我的答案,而是你认为对你最有帮助的人。@SaiLiu,请看