为什么我尝试按查询执行订单,我总是收到错误,告诉我通过ORDER BY'order'DESC检查语法....这是我的查询:
SELECT * FROM posts ORDER BY order DESC;
我做错了什么?
答案 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;