似乎很奇怪,但非常简单的SQL查询对我不起作用。
UPDATE wp_postmeta SET `meta_value` = REPLACE(post_meta, `http://url/`, `http://new_url`)
出现错误消息'找到了一条新语句,但在它与前一个语句之间没有找到分隔符(REPLACE),并且当我尝试执行代码时 - #1064 - 您的SQL语法出错了;检查与您的MySQL服务器版本对应的手册,以便在第1行的')'附近使用正确的语法。请指教。
答案 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/'
- 通常是预期的逻辑。