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

问题描述 投票:1回答:2

我有一个带有文章表的MySQL DB(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 - 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行''style =“color:rgb(0,0,0))附近使用正确的语法

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

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)\;"','');

错误消息仍然存在。

mysql syntax
2个回答
3
投票

找到了。

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

我已将其更改为未使用的char并且查询正常运行。

Delimiter


0
投票

我不能复制这种行为......

http://rextester.com/BZAPY91725

也许你正在使用SPROC?

© www.soinside.com 2019 - 2024. All rights reserved.