Как использовать регулярные выражения в SQL и что здесь означает - PullRequest
0 голосов
/ 03 октября 2019

Задача: Получить список людей с более чем 6 символами в имени https://www.codewars.com/kata/basics-length-based-select-with-like/,

, и, поскольку я немного знаком с регулярным выражением, а не с нотацией SQL '_____%', я создал это:

SELECT first_name, last_name
FROM names
WHERE first_name LIKE '.{6,}'

Но SQL здесь не принимает мое регулярное выражение, почему? Я не мог найти способ использовать регулярные выражения в SQL, но в решениях я нашел это:

SELECT first_name, last_name 
FROM names 
WHERE first_name ~ '.{6,}' -- like it :P

В Интернете я обнаружил, что ~ используется для объединения таблиц? Но тогда я не понимаю, почему это используется здесь и почему это делает регулярное выражение.

1 Ответ

2 голосов
/ 03 октября 2019

Некоторые базы данных поддерживают регулярные выражения. Postgres использует ~ для сопоставления регулярных выражений:

WHERE first_name ~ '.{6,}'

В MySQL это будет:

WHERE first_name REGEXP '.{6,}'

А в Oracle:

WHERE RGEXP_LIKE(first_name, '.{6,}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...