mysql - SQL 查询不起作用。可能的语法错误

标签 mysql

似乎很奇怪,但非常简单的 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/

相关文章:

php - 使用数组查询

MySQL:修剪 *both* 空格和换行符

php - 由于某种原因,我似乎没有解析我的第二个 if 语句

php - 在 mysql/php 中编码多个计数查询

mysql - 如何在 MySQL Workbench 中直接查看 blob

mysql - 将我的本地 Wordpress 安装隧道连接到 appfog 上的 mysql 数据库时出现问题

php - 我如何使用 php 查看 jquery 对话框中的每个内容

php - 如何在 Laravel 中限定模型数据的范围

mysql - Mysql存储函数和groupwise min

MySQL:使用 mysqldump 转储完整数据库时存储过程、函数和触发器会发生什么