我很了解SQL,但我必须在这里找到一些非常愚蠢的东西。此更新查询不断抛出错误。查询是:
UPDATE pages SET 'order' = 1 WHERE id = 19
该表肯定有一个订单列,它有一个ID为19的记录。订单列不是唯一的。
我得到的错误是通用错误:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"order" = 2 WHERE id = 19' at line 1
我在引号中附上了顺序,因为ORDER
是一个保留的SQL字。我错过了什么?
答案 0 :(得分:7)
如果使用MySQL,查询应如下所示:
UPDATE `pages` SET `order`=1 WHERE `id`=19
答案 1 :(得分:3)
这看起来像是MySQL错误消息。 MySQL是否使用反引号(`)进行转义?
答案 2 :(得分:3)
UPDATE pages SET [order] = 1 WHERE id = 19
Nevemind MySQL
答案 3 :(得分:1)
不要使用引号,使用[order](或者sql版本用于转义的任何内容)。使用常规引号时,它被视为字符串文字,这里不允许这样做。
答案 4 :(得分:0)
您需要从查询
中的列名称规范中删除单引号UPDATE pages SET order = 1 WHERE id = 19 ;
答案 5 :(得分:0)
order
是ORDER BY
中使用的保留字。
使用反引号(`)(正如肯所说)。
答案 6 :(得分:0)
最简单的答案是;
UPDATE pages SET pages.order = 1 WHERE id = 19 ;
这应该可以解决问题。
答案 7 :(得分:0)
我认为查询应该是;
UPDATE pages SET order = '1'
WHERE id = 19