我想从post_content sql列中删除h1标记和它们之间的文本。
我尝试过这样的事情:
DELETE FROM wpbz_posts
WHERE `post_content` like '<h1>%</h1>';
但是不知道如何在标签之间使用文本,因为每个文本行都不相同。
有任何提示或帮助吗?谢谢!
答案 0 :(得分:1)
您可以使用REGEXP_REPLACE进行更新,以剥离“ h1”标签及其中的内容
UPDATE wpbz_posts
SET post_content = REGEXP_REPLACE(post_content,'<h1>.*?</h1>','')
WHERE post_content LIKE '%</h1>%'
?
中的.*?
使其成为惰性搜索,因此仅匹配到</h1>
之后的第一个<h1>
为止。
在 db <>小提琴here
上进行测试还有一个UPDATEXML函数,但是该函数仅替换出现1个标签。
如果字符串不包含有效的XML,则会引发“错误的XML值”错误。
UPDATE wpbz_posts
SET post_content = UpdateXML(post_content,'//h1[1]','')
WHERE post_content LIKE '%</h1>%'