sql - 找到 X 行后如何停止在数据库中查找?

标签 sql mysql

我有一个数据库查询,返回了 X 个结果。我希望返回最多 10 个结果。有没有办法在不使用 LIMIT 0,9 的情况下做到这一点?如果必须的话,我会使用 LIMIT,但我宁愿使用其他东西来停止搜索,而不是查看所有行然后只返回前 10 行。

最佳答案

如果您没有在查询中进行任何排序,则“LIMIT 10”将在前 10 个匹配行之后停止。但是一旦您进行排序,就必须对所有行进行处理和排序,然后返回前 10 行。

将其视为“好的,排队的前 10 个人可以进来”和“好的,队列中最高的 10 个人可以进来”之间的区别。第一个你只是打开门,让 10 个人进来。第二个你必须穿过整条线才能找到最高的 10 个人。

关于sql - 找到 X 行后如何停止在数据库中查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2550122/

相关文章:

sql - 在 sql join 中不包括空值

如果值不为空,则更新数据库的 SQL 查询?

sql - 如何使用ASMM检查oracle数据库中的即时缓冲区缓存大小?

php - mysql_connect 需要很长时间才能执行

mysql - SQL:如果某种记录不在同一个表中,则更新一条记录

sql - 按 IN (0,1,2) 集对 SQL 数据进行排序

mysql - 在同一个 mysql 表中的 INSERT INTO 之后获取最后插入的 id(s) 的列表

mysql - 如何从具有可变数据库和表的数据中进行选择

mysql - 在 WHERE 子句中使用子查询结果

mysql - 将 sql 查询转换为 Activerecord 查询 Rails 4