Mysql删除重复标题和截取部分内容更新数据库

时间:2023-12-21    人气:71
你可以使用如下的 SQL 语句来删除 wp_posts 表中所有 post_title 相同并且 post_status 为 publish 的记录,但保留一条:
DELETE p1 FROM wp_posts p1 INNER JOIN wp_posts p2 ON p1.post_title = p2.post_title WHERE p1.post_status = 'publish' AND p2.post_status = 'publish' AND p1.ID > p2.ID;

这个语句会通过自连接的方式找出所有符合条件的记录,并且删除那些除了 ID 最小的记录外的其他记录。这样就能保留一条记录而删除其他重复的记录。


要删除 <p style="text-align:center;color:#666;font-size:10px;"> 及其后的内容,可以使用 SUBSTRING_INDEX 函数。
UPDATE wp_posts
SET post_content = SUBSTRING_INDEX(post_content, '<p style="text-align:center;color:#666;font-size:10px;">', 1)
WHERE post_content LIKE '%<p style="text-align:center;color:#666;font-size:10px;">%';
这个语句会保留匹配到的 <p style="text-align:center;color:#666;font-size:10px;"> 之前的内容,并删除其后的所有内容。

用户评论