我正在通过phpmyadmin使用MySQL。
我正在尝试编写一个SQL查询,该查询检查表“ wp_posts”中的列“ post_content”以及该字段中是否存在以下内容:“ bla bla bla something-150x22 .png ...等”,则必须替换为:“ bla bla bla something.png ...等”。即:必须删除“ -150x44”。
可以使用以下sql查询来完成此操作:
UPDATE wp_posts
SET post_content = replace(post_content, '-150x44.png', '.png')
WHERE post_content LIKE '%150x44.png%'
但是问题是我们不确定要删除的子字符串是否始终为“ -150x44”。我们可以确定的是,仅在x后面有两位数字,但不一定总是“ 44”。
我尝试了以下查询:
UPDATE wp_posts
SET post_content = replace(post_content, '-150x__.png', '.png')
WHERE post_content LIKE '%150x__.png%'
但这不起作用!
问题一定是在WHERE之前的部分,因为当我使用时:
SELECT *
FROM wp_posts
WHERE post_content LIKE "%150x__.png%"
我确实获得了所有必须纠正的行。