假设查询
SELECT * FROM table WHERE a='1' and b='2' and c>'3' and d>'4' and e!='5' and f='6'
返回10000个结果。
我的问题是,假设我将搜索限制为前10个结果:
SELECT * FROM table WHERE a='1' and b='2' and c>'3' and d>'4' and e!='5' and f='6' LIMIT 10
mysql会搜索所有10000个结果还是会在第10个结果处停止?
答案 0 :(得分:2)
LIMIT
将仅显示指定的行,具体取决于它们在结果集中的位置。如果没有ORDER BY,您将依赖于插入记录的顺序。
您可能有兴趣阅读MySQL's ORDER BY/LIMIT performance ...
答案 1 :(得分:0)
由于没有ORDER BY,它将在第10个结果处停止(在根据需要经过尽可能多的非匹配行之后)。正如OMG小马所说,你得到的10行是未指定的。