mysql限制 - 一般问题

时间:2010-08-04 16:15:19

标签: mysql

假设查询

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个结果处停止?

2 个答案:

答案 0 :(得分:2)

LIMIT将仅显示指定的行,具体取决于它们在结果集中的位置。如果没有ORDER BY,您将依赖于插入记录的顺序。

您可能有兴趣阅读MySQL's ORDER BY/LIMIT performance ...

答案 1 :(得分:0)

由于没有ORDER BY,它将在第10个结果处停止(在根据需要经过尽可能多的非匹配行之后)。正如OMG小马所说,你得到的10行是未指定的。