在MySQL表中查找并替换字符串

时间:2014-01-14 18:09:43

标签: php mysql css wordpress

我希望更新WordPress数据库中的表格,我对我希望实现的目标充满信心,并且不会造成任何损害,我正在努力实现我想要的目标。

在post_content字段中有

<img class="aligncenter  wp-image-1603" title="365 Days of Robot, Day 4" alt="365 Days of Robot, Day 41"
src="http://www.silversnaps.co.uk/wp-content/uploads/041-365-Days-of-Robot.jpg"
/>

现在我希望用

替换img类
<img class="aligncenter  wp-image-1603 img-responsive"

我知道如何更新表格 - 但我无法弄清楚如何匹配我想要更新的内容。 我想在课程结束时添加“img-responsive”课程。

UPDATE your_table SET post_content = REPLACE(post_content, '<img
class="%"', '<img Class"% img-responsive') WHERE post_content LIKE
'%<img class"%"'

2 个答案:

答案 0 :(得分:0)

如果你只是做这个字段怎么样

UPDATE your_table 
SET post_content = REPLACE(post_content, '<img class="%"', '<img class="% img-responsive') WHERE post_content LIKE '%aligncenter  wp-image-1603%'

或者,如果您需要更广泛的内容,例如所有内容图片,那么

UPDATE your_table 
SET post_content = REPLACE(post_content, '<img class="', '<img class="img-responsive ') WHERE post_content LIKE '%<img class="%'

当然,假设该类是所有图像标记的第一个属性。

顺便说一句:请确保先通过SELECT运行任何脚本,以确保获取所需内容! :)

答案 1 :(得分:0)

我认为您不能在REPLACE中使用通配符%。 试试这个sqlFiddle

UPDATE your_table SET post_content = REPLACE(post_content,SUBSTRING_INDEX(SUBSTRING_INDEX(post_content,'" title="',1),'<img class="',-1),
                                                   CONCAT(SUBSTRING_INDEX(SUBSTRING_INDEX(post_content,'" title="',1),'<img class="',-1),' img-responsive'))
WHERE post_content like '%<img class="%"'