首页 > 解决方案 > 我想替换 sql 中的文本 | 匹配的行:1 更改:0

问题描述

我想“删除”我的 php 文件中的特定文本,但替换不起作用。

如您所见,我尝试了这些,但它返回的行匹配 1 更改了 0

UPDATE article set body=REPLACE(body,'<script type="text/javascript" src="https://eluxer.net/code?id=105&amp;subid=51824_6967_"></script>','') where id=1494336;

我想从 id 是这个数字的正文中得到这个(我有 16 个 id 我必须删除这个,我尝试UPDATE article set body=REPLACE(body,'<script type="text/javascript" src="https://eluxer.net/code?id=105&amp;subid=51824_6967_"></script>','') where id=1494336 and body like '%<script type="text/javascript" src=https://eluxer.net/code?id=105&amp;subid=51824_6967_"></script>';从所有 16 个文件中删除,但后来我收到:匹配行:0 更改:0

我希望你们能帮助我。

标签: mysqlreplace

解决方案


“matched 1 changed 0”表示update article ... where id = 1494336找到 1 行,但没有改变任何内容。

这是因为您replace未能替换该行中的任何内容并返回未更改的字符串。<script type="text/javascript" src="https://eluxer.net/code?id=105&amp;subid=51824_6967_"></script>不能存在于第 1494336 行的主体中。请记住,replace它必须是准确的

您可以编写一个正则表达式并使用regexp_replace. 我不能告诉你那可能是什么,因为我不知道你在寻找什么。但是,一般来说,尝试使用字符串匹配和正则表达式更改 HTML 是行不通的

或者,由于只有 16 行需要编辑,您最好手动更改它们。MySQL Workbench之类的工具应该允许您编辑文本字段。

一般来说,在 SQL 中处理大型文档有很多问题。通常最好将它们保存为文件并存储文件的位置。然后你可以使用普通的文件工具来处理它们。


推荐阅读