Извлечение нескольких IMG SRC из длинного текста в выбранном MySQL - PullRequest
1 голос
/ 13 марта 2019

У меня есть таблица с именем posts.

Содержит идентификатор и post_content:

ID  post_title post_content
1   aaaa       <p>AAaa</p><img src="https://domain/uploads/aa.jpg"><p>Addd<img src="https://domain/uploads/assssa.jpg"></p>
2   bbb        <img src="https://domain/uploads/bbbb.jpg"><p>xxxxx<img src="https://domain/uploads/xxxxx.jpg"></p>
3   ccc        <p>aaaaa</p><img src="https://domain/uploads/aa.jpg">

Я хочу извлечь изображение src из каждого post_content с конкретным доменом. Каждый post_content имеет несколько изображений.

Как будто я хочу получать изображения только с таким URL:

<img src="https://aaaaa.co.jp/uploads/">

Примечание: <img src=""> может иметь ширину, высоту, класс или идентификатор внутри.

Как это:

<img src="" class="" id="">

OR

<img width="" height="" src="" class="" id="">.

Я уже попробовал это здесь: Извлечение URL из img src с помощью запроса MySQL

Некоторые из них возвращают URL-адрес изображения, а некоторые - нет.

Пока это мой запрос:

SELECT 
    post.ID,
    post.post_title,
    SUBSTR(SUBSTR(post.post_content,
            LOCATE('src="', post.post_content) + 5),
        1,
        LOCATE('"',
                SUBSTR(post.post_content,
                    LOCATE('src="', post.post_content) + 5)) - 1) AS 'src'
FROM
    tokyo_posts post;

Итак, это мой желаемый вывод:

ID  post_title post_content
1   aaaa       https://domain/uploads/aa.jpg
1   aaaa       https://domain/uploads/assssa.jpg
2   bbb        https://domain/uploads/bbbb.jpg
2   bbb        https://domain/uploads/xxxxx.jpg
3   ccc        https://domain/uploads/aa.jpg

Примечание: я использую базу данных WordPress. Я собираюсь использовать этот запрос для импорта изображений.

Mysql версия: 5.6.42

1 Ответ

0 голосов
/ 13 марта 2019

Если вы не измените структуру своих данных, этот идеально вам подойдет.

SELECT post.ID,
post.post_title,
SUBSTRING(post_content, INSTR(post_content, 'src="') + 5
, INSTR(post_content, '">') - (INSTR(post_content, 'src="') + 5))
FROM
tokyo_posts post;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...