Mavrikii
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Weinaum Цитата: и что?) Цитата: поэтому все таки лучше найти решение через регулярку | тут есть другая проблема. например в ситуации <h4 class="...">текст <h4>другой текст</h4></h4> обычная регулярка не поймет какой именно </h4> нужно заменять. и вы так и не сказали какая версия MySQL у вас. Цитата: чето туплю, как select на update заменить, чтобы реально в базе переписывалось? | там все не так просто в такой записи. вам нужно формировать и оригинальную строку, чтобы ее заменять. плюс тот код сработает только на 1 замену, а если нужно несколько? ваш код с заменой будет Код: INSERT banner(banner_name, html_text) VALUES ('Cart page banner', '<h4 class="my-class">Cart page banner here</h4> <h4 class="test">Any another text here</h4>'); UPDATE banner b1 JOIN (SELECT id, @o := LOCATE('<h4 class="my-class">', html_text, 1), @c := LOCATE('</h4>', html_text, @o), CONCAT('\<span class="my-class>', SUBSTR( html_text, @o + 21, @c - @o - 21 ), '</span>') AS replacement, SUBSTR(html_text, @o, @c + 4) AS original FROM banner) AS b2 ON b1.id = b2.id SET b1.html_text = REPLACE(b1.html_text, b2.original, b2.replacement); SELECT * FROM banner; | но вам придется его запускать несколько раз подряд, чтобы заменить все возможные h4. поэтому и спрашиваю - какая версия MySQL у вас? | Всего записей: 15885 | Зарегистр. 20-09-2014 | Отправлено: 19:34 12-04-2021 | Исправлено: Mavrikii, 20:02 12-04-2021 |
|