-3

我有一个问题,试图对我的 Select 请求进行排序 -

SELECT * FROM `table_name`  OREDER BY `score` DESC LIMIT 10 ; 

我收到错误 #1064:

#1064- 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以score在第 1 行的“BY DESC LIMIT 10”附近使用正确的语法

但我真的不知道错了!我认为名称和引号是正确的......因为此请求正常工作:

INSERT INTO `table_name` (`uid`, `score`) VALUES ("'.$viewer_id.'","'.$uscore.'") ON DUPLICATE KEY UPDATE `score` = "'.$uscore.'";'; 

有人可以帮帮我吗????

PS对不起我的英语(

4

2 回答 2

2

ORDER不是OREDER

SELECT * FROM table_name ORDER BY score DESC LIMIT 10

作为旁注,SQL Injection如果变量的值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-04-13T09:32:34.527 回答
1

您的语法中有拼写错误,它是“ORDER BY”而不是“OREDER BY”,正确的语法应该是:

SELECT * FROM `table_name`  ORDER BY `score` DESC LIMIT 10 ;
于 2013-04-13T09:35:22.337 回答