Решение: Поиск в MySQL элементов, начинающихся на '1_'
Быстрый ответ
Если вам необходимо осуществить точный поиск записей, начинающихся с определённой подстроки в MySQL, используйте оператор LIKE
, после которого указывают символ %
. Пример такого запроса выглядит оследующим образом:
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока%';
название_вашей_таблицы
, ваш_столбец
и 'запрошенная_подстрока'
следует заменить на соответствующие наименование таблицы, столбца и искомую подстроку. В результате выполнения такого запроса будут найдены все строки, которые начинаются с 'запрошенная_подстрока'
.
Использование шаблон-символа '%'
В SQL языке символ %
используется как обозначение для любого количества символов. Поэтому, когда вы вставляете 'запрошеннаяподстрока%' в LIKE
запрос, это означает, что вы ищете строки, поля которых начинаются с текста `'запрошеннаяподстрока'` и могут содержать что угодно далее.
Поиск специальных символов
Если возникает потребность найти строки, содержащие такие специальные символы как подчеркивание (_), трактуемое в SQL как любой одиночный символ, используйте обратный слэш (\
) для экранирования:
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока\_%';
Такое использование обратного слэша перед символом подчеркивания делает его воспринимаемым интерпретатором SQL как обычный символ, а не шаблон.
Визуализация
Представьте, что вам нужно найти определённый предмет в списке:
Доступные предметы (🍎🍌🍒🥦🍅): [Яблоко, Банан, Вишня, Брокколи, Помидор]
Использование LIKE
в запросе с шаблоном "начинается на" аналогично поиску слов, которые начинаются с определённой буквы:
SELECT * FROM `items` WHERE `item_name` LIKE 'Б%';
Предметы, начинающиеся с буквы 'Б': [Банан, Брокколи]
В ответ на такой запрос будет возвращён список предметов, перечисленных по порядку и начинающихся с буквы 'Б'.
Правила использования шаблонов и LIKE
Для эффективного применения шаблонов в MySQL критически важно корректное использование символов '_' и '%'.
Шаблон-символ подчеркивания '_'
Символ _
функционирует как шаблон для одного любого символа:
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока_';
Выполнив этот запрос, вы найдёте строки, где за запрошенная_подстрока
следует любой одиночный символ.
Применение экранирования для точного совпадения
Если вам нужно отыскать символы _
или %
в буквальном значении (как символы, а не как шаблоны), следует использовать экранирование:
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока\_%';
После выполнения такого запроса вернутся строки, где следом за строкойидёт 'запрошенная_подстрока_'
.
Распространенные ошибки
При использовании шаблонов необходимо избегать их злоупотребления, чтобы не получить избыточные данные. Всегда проверяйте полученные результаты на соответствие вашим ожиданиям.
Воспользуйтесь оператором LIMIT
При проверке запросов используйте оператор LIMIT
, чтобы ограничить количество возвращённых записей:
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока%' LIMIT 10;
Полезные материалы
- MySQL :: Руководство по MySQL 8.0 :: 5.3.4.7 Поиск по шаблону — страница официального руководства MySQL с описанием работы с шаблонами.
- Использование EXPLAIN для написания лучших запросов в MySQL — SitePoint — гид по оптимизации запросов в MySQL.
- Учебник по полнотекстовому поиску в MySQL — Toptal — обзор методов полнотекстового поиска в MySQL.