MySQL中“ORDER BY order DESC”附近的语法错误?

时间:2012-04-11 02:16:44

标签: mysql sql-order-by mysql-error-1064

为什么我尝试按查询执行订单,我总是收到错误,告诉我通过ORDER BY'order'DESC检查语法....这是我的查询:

SELECT * FROM posts ORDER BY order DESC;

我做错了什么?

3 个答案:

答案 0 :(得分:9)

order是SQL中的保留字;情况无关紧要。用作identifier时,必须引用。来自MySQL Reserved Words文档:

  

某些单词如SELECT,DELETE或BIGINT [或ORDER]是保留的,需要特殊处理才能用作表名和列名等标识符。

传统的MySQL引用:

SELECT * FROM posts ORDER BY `order` DESC;

Proper (ANSI) SQL quotes(某些数据库也支持[order]):

SELECT * FROM posts ORDER BY "order" DESC;

虽然我会考虑重命名专栏以避免将来出现这种令人困惑的问题。

快乐的编码!

答案 1 :(得分:2)

订单是保留关键字。

尝试,

SELECT * FROM posts ORDER BY `order` DESC;

答案 2 :(得分:2)

列名是order,这是一个关键字。你需要这样做:

SELECT * FROM posts ORDER BY `order` DESC;