首页 MySql 如何在MySQL中使用Regexp替换命令?

如何在MySQL中使用Regexp替换命令?

我的目标是用一个catchall链接替换数据库中的链接.我通常使用REPLACE命令替换数据库中的字符串,但这次我遇到了困难,因为为了找到我需要使用正则表达式的链接,这根本就没有用完:UPDATE node_revisions SET body = REPLACE ( `body` , http://.*.pdf, /migrati

我的目标是用一个catchall链接替换数据库中的链接.我通常使用REPLACE命令替换数据库中的字符串,但这次我遇到了困难,因为为了找到我需要使用正则表达式的链接,这根本就没有用完:

UPDATE node_revisions SET body = REPLACE ( `body`,'http://.*.\pdf','/migration-update' );

UPDATE node_revisions SET teaser = REPLACE ( `teaser`,'http://.*pdf','/migration-update' );

这两个问题只是平淡无奇.

在这种情况下需要做些什么?

最佳答案
正如其他人已经提到的那样,你不能在MySQL中做到这一点.但是,这似乎是你需要做的一次性操作,所以我写了一个快速而肮脏的小PHP脚本来完成这项工作.它假定您的node_revisions表具有名为“id”的主键列.如果没有,请适当编辑.另外,不要忘记更改脚本顶部的数据库主机,用户名,密码和数据库名称以匹配您的配置.


另请注意,我在正则表达式上使用了非贪婪的修饰符,这样如果您在正文或预告字段中有多个pdf网址,则不会丢失它们之间的所有内容.

本文来自网络,不代表青岛站长网立场。转载请注明出处: https://www.0532zz.com/html/shujuku/mysql/20210219/17068.html
上一篇
下一篇

作者: dawei

【声明】:青岛站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

【免责声明】本站内容转载自互联网,其发布内容言论不代表本站观点,如果其链接、内容的侵犯您的权益,烦请提交相关链接至邮箱xwei067@foxmail.com我们将及时予以处理。

Copygight © 2016-2023 https://www.0532zz.com All Rights Reserved.青岛站长网

站长:xwei067#foxmail.com(请把#换成@)