Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

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

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

Если вам необходимо осуществить точный поиск записей, начинающихся с определённой подстроки в 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 'запрошенная_подстрока_';

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

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

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

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

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.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой оператор следует использовать для поиска записей, начинающихся с определённой подстроки в MySQL?
1 / 5