我想知道在MySQL中替代TOP关键字。我在SQL Server中读到了TOP。
MySQL中有没有替代方法,或者我们可以从中获得相同功能的MySQL中的任何其他方法?
答案 0 :(得分:23)
订购并限制结果:
SELECT field1, field2
FROM myTable
ORDER BY field1 ASC
LIMIT 10
答案 1 :(得分:5)
您可以使用LIMIT
关键字(请参阅documentation of the SELECT
instruction) - 它位于查询的末尾:
select *
from your_table
where ...
limit 10
获得前10行
甚至:
select *
from your_table
where ...
limit 5, 10
要获得10行,从第6行开始(即获得第6至15行)。
答案 2 :(得分:2)
我知道这个问题已经回答了,我想补充一些性能考虑因素。 MySQL中的TOP运算符未使用LIMIT进行翻译。
假设您想要在db中插入最后10个人:
SELECT name, id
FROM persons
ORDER BY id DESC
LIMIT 10
然而,当使用数千行时,这可能变得极其缓慢。
更快的解决方案是检索当前行数X:
SELECT COUNT(*) FROM persons
并使用该号码查询最后10个:
SELECT name, id
FROM persons
LIMIT x-10,10
因此限制将跳过第一个X-10行并返回下一个10行。 对于我而言,这比排序列快100倍,但这只是我的经验。
答案 3 :(得分:0)
答案 4 :(得分:0)