2010-06-01 56 views
1
UPDATE files 
SET filepath = REPLACE(filepath, `sites/somedomain.com/files/`, `sites/someotherdomain.com/files/`); 

我有一个名为filepath的文件,名为filepath。 MySQL返回此错误:Unknown column 'sites/somedomain.com/files/' in 'field list'这个SQL语法有什么问题?

+1

这发生在我身上的每一次,我从电子邮件复制/粘贴一个SQL命令,所以很烦人:) :) – 2010-06-01 22:52:33

回答

12

使用普通引号而不是反引号:普通引号标识字符串,反引号标识列名称。

+0

他说什么;) – d11wtq 2010-06-01 22:51:46

+0

真棒 - 谢谢。 – Finbarr 2010-06-01 22:53:59

2

为了扩大对坎普的回答是:

反引号或反引号`在MySQL用于封装模式对象(数据库,表,列,索引,程序,......)的名字。它们不能用于包围字符串。您必须使用常规的单或双引号:'或“为

2

+1由@kemp和@Hammerite给出答案

另见我回答这个问题:Do different databases use different name quote?

+0

+1这个链接是值得阅读的如果你想确保跨数据库兼容性而不必编写DBMS相关引用代码或DBMS特定设置配置的东西,则必须完全省略模式名称的引号 - 这不幸也意味着您必须非常小心地命名你的表和列以避免保留字。这是一个讨厌的混乱。 – bobince 2010-06-01 23:08:17