Поиск в базе MySQL по первой букве

Как найти запись в базе данных MySQL по первой букве.

К примеру, у нас есть таблица в MySQL, где прописаны пользователи по формату Фамилия и Имя, и у нас есть поле формы на сайте, где мы ищем пользователя по первым буквам фамилии или имени.

  • Иванов Сергей
  • Петрова Ирина
  • Николаев Сергей

Если нам требовалось искать только по первому слову, т.е по фамилии, то запрос к MySQL был бы такой:

В этом запросе мы отбираем все строки из таблицы users, где в поле name запись начинается на букву «и». В нашем случае мы отберем только одну запись — Иванов Сергей. Если добавить знак процента еще перед буквой «и», то мы отберем все записи, где встречается буква «и», в нашем примере, это будут отобраны все три записи, но этот вариант нам не подойдет, если задача стоит, отобрать пользователей только по фамилии.

Если стоит задача найти по первой букве фамилию и имя, т.е в нашем случае, при вводе буквы «и», мы должны отобрать Иванов Сергей и Петрова Ирина. В этом случае можно использовать регулярные выражения в запросе:

В этом запросе  ^(и) — отбирает все записи, которые начинаются с буквы «и», а [[:space:]](и) — отбирает все записи, где есть пробел, а далее следует буква «и».
Здесь есть один нюанс, буква «и» написана в нижнем регистре, поэтому нужно или регистр в запросе менять, сразу отправлять в условие заглавную букву «И», или можно сделать по другому, а именно, поменять регистр содержимого поля, по которому мы осуществляем отбор.

На базе таких простых запросов, можно создать AJAX форму, в которой будет реализован алгоритм поиска пользователей без перезагрузки страницы. Например, вам нужно отправить рассылку или письмо какому-то пользователю, и у вас есть форма отбора адресатов, а этот код можно использовать в коде php.

 

 

(1 оценок)
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x