У меня есть проблема, связанная с отсутствием знаний в SQL.
У меня есть столбец в моей базе данных, где я сохраняю это:
<div class="product-cover" style="border:none;">
<div class="images-container">
<div class="images-container"><img src="https://myurl.com/img/cms/_DSC6641.jpg" title="" alt="" /></div>
</div>
Я пытаюсь извлечь строку " https://myurl.com/img/cms/_DSC6641.jpg ", которая отличается для каждой строки.
Можно ли создать запрос для извлечения этой точной части между src= "..."?
Я использую MySQL/MariaDB
Я нашел способ, используя ответ от D-Shih
SELECT
SUBSTRING(
pl.description,
LOCATE('src="',pl.description) + CHAR_LENGTH('src="'),
( LOCATE('" title', pl.description)) - ( LOCATE('src="', pl.description) + CHAR_LENGTH('src="') )
) as url
FROM ps_product p
INNER JOIN ps_product_lang pl ON (pl.id_product=p.id_product)
Я бы использовал substring_index()
:
select substring_index(substring_index(col, '<div class="images-container"><img src=', -1), ' ', 1)