2014-01-14 4 views
0

Я хочу обновить таблицы в базе данных WordPress, и я уверен в том, чего я хочу достичь, и он не наносит никакого ущерба, я изо всех сил пытаюсь добиться того, чего хочу.Найти и заменить строку в MySQL Таблица

в 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-отзывчивый» в конце класса.

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

Почему не вы вместо того, чтобы обновить функции Тематической, чтобы добавить класс при визуализации POST_CONTENT? Затем вы можете сохранить базу данных как есть. Или есть плагин Search and Replace для wordpress, который достигнет этого: http://wordpress.org/plugins/search-and-replace/. Я предполагаю, что вы хотите делать со всеми изображениями в сообщении или только там, где у них есть класс aligncenter? – mspaly

ответ

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, чтобы убедиться, что вы выбираете то, что хотите! :)

0

Я не думаю, что вы можете использовать подстановочный знак % в своем ЗАМЕНИТЕ. Попробуйте 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="%"' 
Смежные вопросы