在MySQL中有替代TOP吗?

时间:2010-02-12 05:44:54

标签: sql mysql

我想知道在MySQL中替代TOP关键字。我在SQL Server中读到了TOP

MySQL中有没有替代方法,或者我们可以从中获得相同功能的MySQL中的任何其他方法?

5 个答案:

答案 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)

是的,有limit条款。

示例:

    SELECT * FROM `your_table` LIMIT 0, 10 

这将显示数据库的前10个结果。

答案 4 :(得分:0)

mysql equivalent of top您可以在MySql Doc

中找到有关 LIMIT 的更多信息