使用主键的 SQL 查询

标签 sql indexing key sql-update

我有一个包含三列(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/

相关文章:

sql - 附加没有 From 子句的查询

c# - 实现 'many-to-many' 数据库

sql - 如何处理 MySQL 函数 md5 的输入?

c++ - 如果没有明确的 < 运算符,std::less 如何工作?

mysql - 在第一次 SELECT 查询后从第二个表中获取特定列

database - 有没有比pg_trgm更快的postgres模糊匹配?

MySQL/RDBMS : Is it okay to index long strings? 它会完成这项工作吗?

performance - 为什么 PostgresQL 查询性能随时间下降,但在重建索引时恢复

java - 通过 ID 检索用户对象

java - AES key 从 javacard 到 java,加密