mysql未知列' where子句'使用保留字时

时间:2014-03-17 01:43:10

标签: mysql where

mytable的列名是key,value,modified_at。 我知道key是关于mysql的保留字。

所以我用``。

select * from mytable where `key`=XXX;

但失败并返回消息

Unknown column 'XXX' in 'where clause'.

我该怎么做才能解决?

2 个答案:

答案 0 :(得分:1)

确保XXX在引号中。

select * from mytable where `key`="wonkystuff";

答案 1 :(得分:0)

在您的查询中:

select *
from mytable
where `key` = XXX;

表达式XXX不会以任何方式转义。这意味着SQL将其识别为标识符,在此上下文中,它将是列名。

要使这个字符串保持不变,请将其放在单引号中。您应该始终对字符串和日期常量使用单引号,而不是其他任何内容:

select *
from mytable
where `key` = 'XXX';