В базе данных, в поле description есть фрагмент кода:
<video id="58e482246c5fb6426489b990b1057fe1" class="video-js vjs-default-skin vjs-youtube" controls preload="auto" width="560" height="315" poster="%3Cimg+src%3D%22%2Fimages%2Fproduct%2F200x150%2F60713.jpg%22+alt%3D%22%22+width%3D%22200%22+height%3D%22150%22+%2F%3E" data-setup='{"techOrder":["youtube"],"src":"https://www.youtube.com/watch?v=eLL9ZuaZ_kY"}'></video>
или для наглядности:
<video id="58e482246c5fb6426489b990b1057fe1" class="video-js vjs-default-skin vjs-youtube" controls="" preload="auto" width="560" height="315" poster="%3Cimg+src%3D%22%2Fimages%2Fproduct%2F200x150%2F44684.jpg%22+alt%3D%22%22+width%3D%22200%22+height%3D%22150%22+%2F%3E" data-setup="{"techOrder":["youtube"],"src":"https://www.youtube.com/watch?v=63PkeC4Rl5k&feature=youtu.be"}"></video>
Можно ли с помощью SQL запроса убрать всё лишнее, оставить только ссылку и обернуть её в другой тэг? Чтобы получилось что-то вроде:
<iframe frameborder="0" src="//www.youtube.com/embed/63PkeC4Rl5k" width="640" height="360" class="note-video-clip"></iframe>
Обращаю внимания на то, что просто убрать все тэги не вариант, по-мимо этого фрагмента, есть ещё много чего другого.
что то типо дампа
CREATE TABLE IF NOT EXISTS `docs` (
`id` int(6) unsigned NOT NULL,
`content` varchar(450) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `docs` (`id`,`content`) VALUES
('1', '<video id="58e482246c5fb6426489b990b1057fe1" class="video-js vjs-default-skin vjs-youtube" controls="" preload="auto" width="560" height="315" poster="%3Cimg+src%3D%22%2Fimages%2Fproduct%2F200x150%2F44684.jpg%22+alt%3D%22%22+width%3D%22200%22+height%3D%22150%22+%2F%3E" data-setup="{"techOrder":["youtube"],"src":"https://www.youtube.com/watch?v=63PkeC4Rl5k&feature=youtu.be"}"></video>')
ну и выборка
-- based on answer https://stackoverflow.com/a/7745635/808921
SELECT a.id, CONCAT('<iframe frameborder="0" ',SUBSTRING(a.content, POSITION("src":"" IN a.content),POSITION("}" IN a.content) - POSITION("src":"" IN a.content)),' width="640" height="360" class="note-video-clip"></iframe>') as Ссылка
FROM `docs` a
результат:
ну и ссылка на рабочий пример
время выполнения
что нужно понимать для запроса
substring - вырезает из строки указанное кол-во символов с указанного индекса
length - возвращает длину строки в байтах
position - возвращает индекс найденного элемента в строке
concat - слияние строк
Ну и чутка теории вам:
Первая нормальная форма - Отношение находится в 1НФ, если все его атрибуты являются простыми, все используемые домены должны содержать только скалярные значения. Не должно быть повторений строк в таблице.
Взято отсюда - это все к тому, что значение ссылки можно заносить в отдельный столбец в БД
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
есть в yii2 такая вещь как rbac, в ней есть таблица auth_item_child, в ней поля parent и child, в эти поля можно вставить только значения из таблицы auth_item, поля...
Имеется VPS - Windows Server 2016
Необходимо включение режима "Safe Mode" путем передачи запроса посредством php(api) на Mikrotik!