16
Мая
2023
г.
Как найти строку по шаблону с помощью оператора LIKE в mysql
Оператор LIKE
используется в выражениях sql для поиска строк подходящих под шаблон.
Шаблон включает следующие специальные символы:
%
- любой символ от 0 и больше_
- один любой символ
Удобно использовать для поиска.
# Точное совпадение, что в принципе равно SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` = 'Тест'
SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` LIKE 'Тест';
# Выражение должно начинаться с буквы А
SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` LIKE 'А%';
# В выражении должна быть буква а
SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` LIKE '%а';
# Самый распространенный вариант буква А в любой позиции в выражении
SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` LIKE '%А%';
# Выражение из двух букв, любой символ + буква Б
SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` LIKE '_Б';
# Выражение где первый и третий символ любой, второй буква K далее любой набор символов
SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` LIKE '_К_%';
# Если нужно найти строку где есть % или _ их нужно экранировать следующим образом
SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` LIKE '%\%%';
# Или так
SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` LIKE '%!%%' ESCAPE '!';
# Если нужно выбрать несколько значений используем несколько операторов LIKE
SELECT `id`,`name`, `full_title` FROM `clients` WHERE `name` LIKE '%Атак' OR `name` LIKE '%Ашан';
# Иногда требуется реализовать регистронезависимый поиск, сделать это можно перевести все названия в верхний регистр
SELECT `id`,`name`, `full_title` FROM `clients` WHERE UPPER(`name`) LIKE UPPER('%А');
Возник вопрос или предложение пиши на почту
alexsey_89@bk.ru или в
Телеграмм канал
Дата публикации: 16
Мая
2023
г.