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

Sam*_*ark 3 mysql sql-order-by mysql-error-1064

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

SELECT * FROM posts ORDER BY order DESC;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么??

小智 9

order是SQL中的保留字; 情况无关紧要.用作标识符必须引用它.从MySQL保留字文档:

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

传统的MySQL报价:

SELECT * FROM posts ORDER BY `order` DESC;
Run Code Online (Sandbox Code Playgroud)

适当的(ANSI)SQL引号(某些数据库也支持[order]):

SELECT * FROM posts ORDER BY "order" DESC;
Run Code Online (Sandbox Code Playgroud)

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

快乐的编码!