Копирование определённой строчки из одного поля в другое SQL

RAPCorp

Постоялец
Регистрация
12 Сен 2012
Сообщения
71
Реакции
10
Есть какой-нибудь универсальный запрос SQL, чтобы из одного поля таблицы (text) где находится текст с тэгами, брать первое изображение формата

Код:
<p><img src="/images/kazualnieigrinapk_8B979AA3.jpg" /></p>

и копировать его в соседнее поле, мне нужно сделать превьюшки (мини изображения рядом с анонсами статьи или новости), хотелось чтобы у каждой была отдельная картинка. Как-то через UPDATE это сделать можно? В таблице записей около 3к и руками это делать не айс(
 
Последнее редактирование модератором:
напишите простенький скрипт на php будет удобней и проще...
Регулярные выражения в mysql не для натуралов
 
напишите простенький скрипт на php будет удобней и проще...
Регулярные выражения в mysql не для натуралов
У меня с регулярками фигово, возможно ли их настроить таким образом, чтобы они url резали только в первой найденной ссылки, а не проходил в поисках всё поле?
 
В sql тоже есть regexp. Вот вам и решение...
 
Ага, только он не предназначен для выборки подстроки. Для просмотра ссылки Войди или Зарегистрируйся
Так что пишем скрипт или мучаемся со SQL Для просмотра ссылки Войди или Зарегистрируйся
Как я понял, регулярки SQL заточены скорее на выборку и поиск чего-либо в таблице, но ни как не выдирание каких-то кусков содержимого и добавлении в другое поле.
 
В MySQL использовать LOCATE в запросе и с его помощью разбирать HTML.
 
Конкретно для твоего примера можно так:
Код:
SELECT
    c,
    SUBSTRING_INDEX(SUBSTRING(c, LOCATE('src=', c) + 5),
            '"',
           1)
FROM
    t;
Результат на пикче для твоих данных
mysql.jpg
Вкратце: ищет первое в строчке src=, а затем берёт строку между двумя двойными ковычками "
Проверил на MySQL 5.7 Если у тебя старая версия, то этого функции SUBSTRING_INDEX может и не быть
 
Назад
Сверху