我试过运行这个sql
UPDATE table
SET read = 1
WHERE col1_id = 2
AND col3_id = 1;
并返回错误(sql语法错误)
#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行'read = 1 WHERE team_notification_id = 2 AND listener_id = 1'附近使用正确的语法
但是当我使用相同的WHERE和AND :)时,在SELECT语句中没有返回错误。
SELECT *
FROM read
WHERE col1_id = 2
AND col3_id = 1
请问我做错了什么,我没有看到它。
答案 0 :(得分:3)
关键字UPDATE后应该有一个表名。如果你的表名实际上有table
(这有点奇怪)你应该逃避它以让MySQL知道它不是关键字" table"但实际的表名。
同样的事情是read
。
table
和read
都是MySQL关键字(完整列表在这里http://dev.mysql.com/doc/refman/5.7/en/keywords.html)所以如果它是您的实际表名和列名,那么您应该将其转义。< / p>
最好转义所有表名和列名,以防止出现类似问题。
在MySQL中转义是使用反引号符号完成的,因此您的查询将如下所示:
UPDATE `table`
SET `read` = 1
WHERE `col1_id` = 2
AND `col3_id` = 1;
答案 1 :(得分:1)
UPDATE tablename
SET `field_name` = 1
WHERE col1_id = 2
AND col3_id = 1;
答案 2 :(得分:-1)
UPDATE table
SET [read] = 1
WHERE col1_id = 2
AND col3_id = 1;