ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Решение: Поиск в MySQL элементов, начинающихся на '1_'

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Если вам необходимо осуществить точный поиск записей, начинающихся с определённой подстроки в MySQL, используйте оператор LIKE, после которого указывают символ %. Пример такого запроса выглядит оследующим образом:

SQL
Скопировать код
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока%';

название_вашей_таблицы, ваш_столбец и 'запрошенная_подстрока' следует заменить на соответствующие наименование таблицы, столбца и искомую подстроку. В результате выполнения такого запроса будут найдены все строки, которые начинаются с 'запрошенная_подстрока'.

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Использование шаблон-символа '%'

В SQL языке символ % используется как обозначение для любого количества символов. Поэтому, когда вы вставляете 'запрошеннаяподстрока%' в LIKE запрос, это означает, что вы ищете строки, поля которых начинаются с текста `'запрошеннаяподстрока'` и могут содержать что угодно далее.

Поиск специальных символов

Если возникает потребность найти строки, содержащие такие специальные символы как подчеркивание (_), трактуемое в SQL как любой одиночный символ, используйте обратный слэш (\) для экранирования:

SQL
Скопировать код
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока\_%';

Такое использование обратного слэша перед символом подчеркивания делает его воспринимаемым интерпретатором SQL как обычный символ, а не шаблон.

Визуализация

Представьте, что вам нужно найти определённый предмет в списке:

Markdown
Скопировать код
Доступные предметы (🍎🍌🍒🥦🍅): [Яблоко, Банан, Вишня, Брокколи, Помидор]

Использование LIKE в запросе с шаблоном "начинается на" аналогично поиску слов, которые начинаются с определённой буквы:

SQL
Скопировать код
SELECT * FROM `items` WHERE `item_name` LIKE 'Б%';
Markdown
Скопировать код
Предметы, начинающиеся с буквы 'Б': [Банан, Брокколи]

В ответ на такой запрос будет возвращён список предметов, перечисленных по порядку и начинающихся с буквы 'Б'.

Правила использования шаблонов и LIKE

Для эффективного применения шаблонов в MySQL критически важно корректное использование символов '_' и '%'.

Шаблон-символ подчеркивания '_'

Символ _ функционирует как шаблон для одного любого символа:

SQL
Скопировать код
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока_';

Выполнив этот запрос, вы найдёте строки, где за запрошенная_подстрока следует любой одиночный символ.

Применение экранирования для точного совпадения

Если вам нужно отыскать символы _ или % в буквальном значении (как символы, а не как шаблоны), следует использовать экранирование:

SQL
Скопировать код
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока\_%';

После выполнения такого запроса вернутся строки, где следом за строкойидёт 'запрошенная_подстрока_'.

Распространенные ошибки

При использовании шаблонов необходимо избегать их злоупотребления, чтобы не получить избыточные данные. Всегда проверяйте полученные результаты на соответствие вашим ожиданиям.

Воспользуйтесь оператором LIMIT

При проверке запросов используйте оператор LIMIT, чтобы ограничить количество возвращённых записей:

SQL
Скопировать код
SELECT * FROM название_вашей_таблицы WHERE ваш_столбец LIKE 'запрошенная_подстрока%' LIMIT 10;

Полезные материалы

  1. MySQL :: Руководство по MySQL 8.0 :: 5.3.4.7 Поиск по шаблону — страница официального руководства MySQL с описанием работы с шаблонами.
  2. Использование EXPLAIN для написания лучших запросов в MySQL — SitePoint — гид по оптимизации запросов в MySQL.
  3. Учебник по полнотекстовому поиску в MySQL — Toptal — обзор методов полнотекстового поиска в MySQL.