似乎很奇怪,但非常简单的 SQL 查询对我不起作用。
UPDATE wp_postmeta SET `meta_value` = REPLACE(post_meta, `http://url/`, `http://new_url`)
出现错误消息“找到了一个新语句,但在它与前一个语句 (REPLACE) 之间没有找到分隔符,当我尝试执行代码时 - #1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“)”附近使用的正确语法。请告知。
最佳答案
您的具体问题是使用反引号而不是单引号。但是,我认为表达逻辑的更好方法是:
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/'
进行更新——通常是预期的逻辑。
关于mysql - SQL 查询不起作用。可能的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42761552/