首页 > 代码

mysql区间泛内容批量替换语句,且限定ID范围

要求:要批量把文章id where id >= 587606 and id <= 588755 之间的文章内容内 区间为


<br>│├─ ******<a name="downa">

的内容批量替换为


<br>AcontentB<a name="downa">

例:在wordpress网站内,
批量替换 wp_posts 表中 post_content 字段里,在


<br>│├─ ******<a name="downa">

区间内容为


<br>AcontentB<a name="downa">

,且限定 ID 范围在 587606 到 588755:


UPDATE wp_posts
SET post_content = REGEXP_REPLACE(
    post_content,
    '<br>│├─.*?<a name="downa">',
    '<br>AcontentB<a name="downa">',
    1,
    1,
    'c'
)
WHERE ID >= 587606 AND ID <= 588755
  AND post_content REGEXP '<br>│├─.*?<a name="downa">';

说明:
REGEXP_REPLACE 是 MySQL 8.0+ 支持的函数,用于正则表达式替换。
正则模式 .*? 是非贪婪匹配,确保只替换到第一个
1, 1, 'c' 表示从第1个匹配开始替换,区分大小写。
WHERE 条件限定只替换 ID 范围内的文章。
请确认你的 MySQL 版本是否为 8.0 或更高。若你使用的是较旧版本(如 5.7),则无法使用 REGEXP_REPLACE,需改用应用层处理(如用 PHP)。



  • 服务器上mysql数据库很多,某个库把整台服务器拉爆了,如何定位找到罪魁?
  • 服务器上mysql数据库很多,某个数据库把整台服务器拉爆了,如何定位找到罪魁? 先在 MySQL 里把“正在烧 […]

  • mysql批量删除所有文章某区间内不同的内容
  • 【批量删除所有文章某区间内容】 例:某mysql数据内有几十万条数据,删除所有 <p class=&qu […]

  • mysql语句请尽量不使用ORDER BY RAND()
  • 不使用ORDER BY RAND() select id from `dynamic` order by ra […]

  • InnoDB删除数据后释放磁盘空间的方法
  • 最近发现mysql里的一个数据文件竟然高达150G,当时就懵了, 经过查文档发现原来,所有信息都存在这一个文件 […]

  • 批量删除wordpress内容,按标题内容字段字段长短
  • 批量删除文章,按标题内容字段字段长短, DELETE FROM wp_posts where length(p […]

  • 批量删除wordpress所有内容页里某个字符段前后的内容
  • 举个栗子一: 批量删除某个内容前的所有内容 例:删除表wp_posts 字段post_content 内容里所 […]