SELECT TOP 3 * FROM客户通过不工作订购user_score

时间:2018-08-23 11:28:32

标签: mysql

我需要找到前3个得分,并且我正在使用top子句,但是它不起作用并且抛出了非法声明错误,我正在使用Mysql版本5.7。*。

我做错了。根据可用的不同示例,我认为我的SQL语法正确。是版本问题吗?

编辑:实际查询

select top 3 * from customers order by user_score;

请点击以下显示顶部条款的链接 https://www.tutorialspoint.com/sql/sql-top-clause.htm

4 个答案:

答案 0 :(得分:3)

对于MySQL,您需要使用limit而不是top。

尝试以下操作;

SELECT 
    *
FROM
    Customers
ORDER BY user_score
LIMIT 3

答案 1 :(得分:1)

您需要使用LIMIT而不是TOP,因为在MySQL SELECT上不可能使用TOP

SELECT * 
FROM customers 
ORDER BY user_score DESC 
LIMIT 3
  

演示: https://www.db-fiddle.com/f/qVLM7846ATFwYQwemzwiYC/1


tutorialspoint.com上的文章还提到TOP子句并非在所有数据库上都可用:

  

注意-所有数据库都不支持TOP子句。例如,MySQL支持LIMIT子句以获取有限数量的记录,而Oracle使用ROWNUM命令来获取有限数量的记录。

您可以在TSQL / MSSQL上尝试使用TOP子句:

SELECT TOP 3 * 
FROM customers 
ORDER BY user_score DESC
  

演示: http://sqlfiddle.com/#!18/6ad9c/1/0

答案 2 :(得分:0)

如果需要最低的ASC,则需要在排序中使用LIMIT和DESC,因为我希望我认为TOP 3最高分。

SELECT * FROM Customers ORDER BY user_score DESC LIMIT 3

答案 3 :(得分:0)

对于SQL Server:

SELECT * FROM Customers ORDER BY user_score ROWNUM <=3