2010-06-01 191 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