我有一个包含三列(key、id、loglevel)的 SQL 表。键列设置为主键,并自动递增。
想象一下:
key id loglevel
1 223 5
2 445 8
现在我想通过选择与“键”的特定值对应的行来更新表格。
我正在使用这条线:
mysql_query("UPDATE Logs SET loglevel = 4 WHERE key = 2;");
但是这不起作用。
当我把它改成
mysql_query("UPDATE Logs SET loglevel = 4 WHERE id = 445;");
它工作正常。但是,我想根据“key”而不是“id”进行更新。
知道我做错了什么吗?
最佳答案
在 MySQL 中键是 reserved word并且必须被引用。
"UPDATE Logs SET loglevel = 4 WHERE `key` = 2"
我还强烈建议您查看 mysql_error 的值当您的查询失败时,因为这可能会给您提示,您需要自己解决这个问题。
Error Code: 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 'key' at line 1
关于使用主键的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8144424/