Напиши SQL-запрос для извлечения всех ссылок из таблицы messages, содержащих домен youtube.com или youtu.be.

Для извлечения всех ссылок из таблицы `messages`, содержащих домены `youtube.com` или `youtu.be`, можно использовать следующий SQL-запрос:

sql
SELECT id, url FROM messages WHERE url LIKE ‘%youtube.com%’ OR url LIKE ‘%youtu.be%’;

Этот запрос предполагает, что в таблице `messages` есть столбец `url`, в котором хранятся ссылки. Оператор `LIKE` с шаблоном `%youtube.com%` находит любые строки, содержащие подстроку `youtube.com` в любом месте значения поля.

**Если ссылки хранятся внутри текстового поля (например, `body` или `text`), запрос будет выглядеть так:**

sql
SELECT id, body FROM messages WHERE body LIKE ‘%youtube.com%’ OR body LIKE ‘%youtu.be%’;

**Для PostgreSQL можно использовать регулярные выражения (более точный поиск):**

sql
SELECT id, body FROM messages WHERE body ~* ‘https?://(www.)?(youtube.com|youtu.be)[^s]*’;

Оператор `~*` — регистронезависимое совпадение с регулярным выражением. Это позволяет точнее выделить именно URL, а не случайные упоминания доменов.

**Для MySQL с использованием REGEXP:**

sql
SELECT id, body FROM messages WHERE body REGEXP ‘https?://(www.)?(youtube.com|youtu.be)’;

**Строка для CSV** (заголовок + пример данных):

id,url
1,https://www.youtube.com/watch?v=dQw4w9WgXcQ
2,https://youtu.be/dQw4w9WgXcQ

**Рекомендации:**
— Если нужно извлечь только сам URL из длинного текста (а не всю строку), в PostgreSQL используйте функцию `regexp_matches()`, в MySQL — `REGEXP_SUBSTR()` (доступна с версии 8.0).
— Для больших таблиц рекомендуется создать полнотекстовый индекс или использовать специализированные инструменты поиска, так как `LIKE ‘%…%’` не использует стандартные B-tree индексы и может работать медленно.
— Если домены могут встречаться в разном регистре (`YouTube.com`, `YOUTU.BE`), используйте `ILIKE` (PostgreSQL) или `LOWER(url) LIKE ‘%youtube.com%’` (универсально).

Таким образом, базовый запрос прост и универсален, а при необходимости точного парсинга URL стоит использовать регулярные выражения, доступные в вашей СУБД.


Задайте вопрос нейросети

Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.