LIKE и регулярные выражения в SQL: поиск по шаблону

WHERE - СОПОСТАВЛЕНИЕ С ШАБЛОНОМ LIKE

Иногда нам нужно выводить строки, с условием, что часть какая-то подстрока входит в строку. Первое что приходит в голову, это использование оператора IN. Это неправильно!

В этом случае мы используем оператор LIKE  или оператор ~ для регулярных выражений. 

Давайте теперь выведем 10 игроков (имя игрока - long_name, возраст - age, позиция - team_position, команда - club), которые играют в футбольном клубе название которого начинается с “Manchester“:

select
    long_name,
    age,
    team_position,
    club
from
    fifa_players_2018
where
    club like 'Manchester%'
limit 10

В этом случае мы использовали % в конце строки, этот знак показывает, что после "Manchester" может идти что угодно. 

Часто, когда пытаются проверить, что в строке есть подстрока или какой-то паттерн, применяют регулярные выражения с использованием специальных знаков, таких, как %.

Да, еще стоит упомянуть, что помимо оператора LIKE  мы можем использовать и  ~ , в этом случае синтаксис регулярных выражений более сложный, но в то же время более продвинутый.

Давайте для примера напишем такой же запрос, только теперь вместо LIKE будем использовать ~

select
    long_name,
    age,
    team_position,
    club
from
    fifa_players_2018
where
    -- club like 'Manchester%'
    club ~ '^Manchester.*'
limit 10

Как видите, синтаксис немного сложнее :)

Учить регулярные выражения не нужно, для каждого случая можно их гуглить или использовать CHAT GPT (он пишет их качественно).