Оператор регулярных выражений зависит от СУБД: PostgreSQL использует ~ и ~*, MySQL поддерживает REGEXP/REGEXP_LIKE, а LIKE работает с шаблонами, не полноценными regex.
Какой SQL-оператор использовать для регулярных выражений?
Оператор регулярных выражений зависит от СУБД: PostgreSQL использует ~ и ~*, MySQL поддерживает REGEXP/REGEXP_LIKE, а LIKE работает с шаблонами, не полноценными regex.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Оператор регулярных выражений зависит от СУБД: PostgreSQL использует ~ и ~*, MySQL поддерживает REGEXP/REGEXP_LIKE, а LIKE работает с шаблонами, не полноценными regex.
Для PostgreSQL пример поиска строк, начинающихся с трёх цифр:
SELECT name
FROM items
WHERE name ~ '^[0-9]{3}';
Оператор ~ чувствителен к регистру, ~* — нет. В других СУБД синтаксис и возможности отличаются, поэтому сначала уточняют движок и версию. Регулярное выражение проверяет формат строки, но не обязательно её бизнес-корректность. Для обычного префикса LIKE может быть понятнее; производительность зависит от шаблона, индексов и объёма данных.