2017-03-13 26 views
1

似乎很奇怪,但很簡單SQL查詢不適用於我。出現SQL查詢不起作用。可能的語法錯誤

UPDATE wp_postmeta SET `meta_value` = REPLACE(post_meta, `http://url/`, `http://new_url`) 

錯誤消息「的新說法被發現,但沒有分隔符,發現它和前一個(替換),當我試圖執行的代碼之間 - #1064 - 你必須在你的錯誤SQL語法;請檢查與您的MySQL服務器版本相對應的手冊,以便在第1行')'附近使用正確的語法。請注意。

+0

你需要圍繞字符串值直接引用單引號,而不是反引號。 –

+0

編輯您的問題並顯示您正在使用的表格。 –

回答

0

您的具體問題是使用反引號而不是單引號。不過,我認爲更好的方式來表達的邏輯是:

UPDATE wp_postmeta 
    SET meta_value = CONCAT('http://new_url', SUBSTRING(post_meta, 12)) 
    WHERE meta_value LIKE 'http://url/%' AND 
      meta_key = ??; 

它使用WHERE子句來過濾掉不應該被更新的行。它還確保更新僅在字符串開始時出現'http://url/' - 通常是預期的邏輯。

+0

如果我將backtricks更改爲單引號,它仍然是同樣的問題... –

+0

您是否確實希望將'post_meta'用於分配的replace()和meta_value? –

+0

戈登,已經解決了。這是我的查詢中的拼寫錯誤。 –