更新语句中的 MySQL 分号导致语法错误

标签 mysql syntax

我有一个带有文章表的 MySQL 数据库 (5.7.18)。每篇文章在 abstract 列中都有一个作为 HTML 字符串的摘要。由于 HTML 编辑器中的一个错误,许多 HTML 标签被烦人的样式污染,如下所示:

<h1 style="color: rgb(0, 0, 0);">Wonderful Abstract</h1>

为了解决这个问题,我正在尝试以下查询:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0);"','')

不幸的是,显示了一个语法错误:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' style="color: rgb(0, 0, 0))' at line 1

如果删除分号,它可以正常工作:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0)"','');

但它也必须在字符串中被替换...

我找到了一个引用 here说要逃避它:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0)\;"','')

但错误信息仍然显示。

同源描述的另一个选项是在语句末尾添加一个分号:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0);"','');

以及这两者的结合:

UPDATE `article` SET `abstract`=REPLACE(`abstract`,' style="color: rgb(0, 0, 0)\;"','');

错误信息仍然存在。

最佳答案

找到了。

它是 phpMyAdmin 中的一个字段,默认设置为分号 (;)。

我已将其更改为未使用的字符,查询运行正常。

Delimiter

关于更新语句中的 MySQL 分号导致语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44298640/

相关文章:

c# - 将对象名称与数字组合

mysql 或 mariadb - 奇怪的服务器行为

python - 加载 MySQLdb 模块时出错 Mountain Lion

php - ActiveCollab 2.3.1 : Using SVN integration

php - Laravel 5 - 用户个人资料图片

javascript - Node Express MySQL 和错误 : Can't set headers after they are sent

java - Java 中的内部包保护访问修饰符

ruby - 什么可能的歧义导致此 Ruby 代码抛出 SyntaxError?

javascript - 如何将数组传递给 map ?句法

python - 这个列表理解 pythonic 够吗?