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

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

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

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

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

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

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

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

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

 

 

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