为什么这个SQL UPDATE查询不起作用?

时间:2010-03-05 07:07:35

标签: mysql sql

我很了解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字。我错过了什么?

8 个答案:

答案 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)

orderORDER BY中使用的保留字。

使用反引号(`)(正如肯所说)。

答案 6 :(得分:0)

最简单的答案是;

UPDATE pages SET pages.order = 1 WHERE id = 19 ;

这应该可以解决问题。

答案 7 :(得分:0)

我认为查询应该是;

UPDATE pages SET order = '1'
WHERE id = 19