我需要找到前3个得分,并且我正在使用top子句,但是它不起作用并且抛出了非法声明错误,我正在使用Mysql版本5.7。*。
我做错了。根据可用的不同示例,我认为我的SQL语法正确。是版本问题吗?
编辑:实际查询
select top 3 * from customers order by user_score;
请点击以下显示顶部条款的链接 https://www.tutorialspoint.com/sql/sql-top-clause.htm
答案 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
tutorialspoint.com上的文章还提到TOP
子句并非在所有数据库上都可用:
注意-所有数据库都不支持
TOP
子句。例如,MySQL支持LIMIT
子句以获取有限数量的记录,而Oracle使用ROWNUM
命令来获取有限数量的记录。
您可以在TSQL / MSSQL上尝试使用TOP
子句:
SELECT TOP 3 *
FROM customers
ORDER BY user_score DESC
答案 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