我有一个表'PREFERENCES',其列有userid(整数),key(varchar(255))和value(longtext)。列(userid,key)是主键。我已经在表格中有一些数据。
例如:
userid | key | value
12 | abc | testvalue12abc
12 | pqr | testvalue12pqr
13 | abc | testvalue13abc
14 | abc | testvalue14abc
14 | pqr | testvalue14pqr
14 | xyz | testvalue14xyz
当我运行更新查询时,
UPDATE PREFERENCES
SET value='somethingElse'
WHERE userid=12 AND key='abc';
我收到语法错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'userid = 12 AND key ='abc''附近使用正确的语法。
我在where子句中尝试了不同的组合;当where子句中没有varchar列时,它工作正常。但是当在where子句中使用varchar列时,它会因语法错误而失败。
我正在使用mysql,服务器5.1.49。
答案 0 :(得分:2)
key
是保留关键字。
将其括在反引号中UPDATE PREFERENCES SET value='somethingElse' WHERE userid=12 AND `key`='abc'