Есть таблица users, в ней поля id, user и т.д. Подскажите, каким запросом можно выбрать всех пользователей, имя которых начинается на букву А ?
задан 13 июн 2012 в 9:16
LightShockLightShock
1,0642 золотых знака18 серебряных знаков31 бронзовый знак
2 ответа
А LIKE чем не подходит ?
SELECT user FROM users WHERE user LIKE 'A%'
Вот и все =)
ответ дан 13 июн 2012 в 9:32
AseNAseN
13.6k13 золотых знаков60 серебряных знаков122 бронзовых знака
2
SELECT user FROM users REGEXP "^[A]"; Но могу ошибаться…
ответ дан 13 июн 2012 в 9:20
3
I recently had the same situation. The optimum solution is to not store names in the database as full names, however, sometimes we are not in control of the data and need a solution. I ended up using the following:
SELECT * FROM db WHERE Name REGEXP " +[[:<:]]j[-'a-z]{3,}$| +[[:<:]]j[-'a-z]{3,} jr.$| +[[:<:]]j[-'a-z]{3,} sr.$";
This will search for last names starting with ‘J’. I found J and S to be the most difficult because some names in the database include Jr. or Sr. at the end, throwing off the query.
I have to mention that this is a very rough solution and I can think of many instances when it would not work. It could get very long very quick. It accounts for hyphenated names or names with apostrophes, but there is no sure-fire way to match names.
A brief explanation of what is going on:
- The first space makes sure we are never matching against the first name.
- [[:<:]] is the mysql beginning of a word boundary ([[:>:]] would match the end of a word). So [[:<:]]j matches words starting with J. Remember mysql is case insensitive when matching strings.
- $ makes sure that it is the end of the string since we are looking for last names. This presents a problem with Jr or Jr. and Sr or Sr. so {3,} makes sure that it is longer than 2 letters and [-‘a-z] doesn’t allow periods. I realize this will skip valid 2 letter last names such as Xu, but I have more Jrs than Xus in the database. An alternative solution would be to replace {3,} with *. Then two letter names would be returned, but if Jr is missing the period it will return as well.
- Finally this expression is run with two other cases, ‘ jr.$’ and ‘ sr.$’ so that the Jr. and Sr. results are returned when the last name matches the letter being searched for.
Additional cases such as II or III could also be added.
You can also use the MySQL REGEXP documentation as a reference.
Поиск фамилий людей по алфавитному указателю
Должники, суды, разыскиваемые лица, правонарушения, предпринимательская, общественная и профессиональная деятельность.
Введите имя и фамилию на украинском языке
Как найти запись в базе данных MySQL по первой букве.
К примеру, у нас есть таблица в MySQL, где прописаны пользователи по формату Фамилия и Имя, и у нас есть поле формы на сайте, где мы ищем пользователя по первым буквам фамилии или имени.
- Иванов Сергей
- Петрова Ирина
- Николаев Сергей
Если нам требовалось искать только по первому слову, т.е по фамилии, то запрос к MySQL был бы такой:
|
select name from users where name like ‘и%’ |
В этом запросе мы отбираем все строки из таблицы users, где в поле name запись начинается на букву “и”. В нашем случае мы отберем только одну запись – Иванов Сергей. Если добавить знак процента еще перед буквой “и”, то мы отберем все записи, где встречается буква “и”, в нашем примере, это будут отобраны все три записи, но этот вариант нам не подойдет, если задача стоит, отобрать пользователей только по фамилии.
|
select name from users where name like ‘%и%’ |
Если стоит задача найти по первой букве фамилию и имя, т.е в нашем случае, при вводе буквы “и”, мы должны отобрать Иванов Сергей и Петрова Ирина. В этом случае можно использовать регулярные выражения в запросе:
|
select name from users where name REGEXP ‘^(и)|[[:space:]](и)’ |
В этом запросе ^(и) – отбирает все записи, которые начинаются с буквы “и”, а [[:space:]](и) – отбирает все записи, где есть пробел, а далее следует буква “и”.
Здесь есть один нюанс, буква “и” написана в нижнем регистре, поэтому нужно или регистр в запросе менять, сразу отправлять в условие заглавную букву “И”, или можно сделать по другому, а именно, поменять регистр содержимого поля, по которому мы осуществляем отбор.
|
select name from users where LOWER(name) REGEXP ‘^(и)|[[:space:]](и)’ |
На базе таких простых запросов, можно создать AJAX форму, в которой будет реализован алгоритм поиска пользователей без перезагрузки страницы. Например, вам нужно отправить рассылку или письмо какому-то пользователю, и у вас есть форма отбора адресатов, а этот код можно использовать в коде php.
Работая с текстом, особенно с большими объемами, зачастую необходимо найти слово или кусок текста. Для этого можно воспользоваться поиском по тексту в Ворде. Существует несколько вариантов поиска в Word:
- Простой поиска, через кнопку «Найти» (открывается панель Навигация);
- Расширенный поиск, через кнопку «Заменить», там есть вкладка «Найти».
Самый простой поиск в ворде – это через кнопку «Найти». Эта кнопка расположена во вкладке «Главная» в самом правом углу.
! Для ускорения работы, для поиска в Ворде воспользуйтесь комбинацией клавишей: CRL+F
После нажатия кнопки или сочетания клавишей откроется окно Навигации, где можно будет вводить слова для поиска.
! Это самый простой и быстрый способ поиска по документу Word.
Для обычного пользователя большего и не нужно. Но если ваша деятельность, вынуждает Вас искать более сложные фрагменты текста (например, нужно найти текст с синим цветом), то необходимо воспользоваться расширенной формой поиска.
Расширенный поиск в Ворде
Часто возникает необходимость поиска слов в Ворде, которое отличается по формату. Например, все слова, выделенные жирным. В этом как рас и поможет расширенный поиск.
Существует 3 варианта вызова расширенного поиска:
- В панели навигация, после обычного поиска
- На кнопке «Найти» нужно нажать на стрелочку вниз
- Нужно нажать на кнопку «Заменить» , там выйдет диалоговое окно. В окне перейти на вкладку «Найти»
В любом случае все 3 варианта ведут к одной форме – «Расширенному поиску».
Как в Word найти слово в тексте – Расширенный поиск
После открытия отдельного диалогового окна, нужно нажать на кнопку «Больше»
После нажатия кнопки диалоговое окно увеличится
Перед нами высветилось большое количество настроек. Рассмотрим самые важные:
Направление поиска
В настройках можно задать Направление поиска. Рекомендовано оставлять пункт «Везде». Так найти слово в тексте будет более реально, потому что поиск пройдет по всему файлу. Еще существуют режимы «Назад» и «Вперед». В этом режиме поиск начинается от курсора и идет вперед по документу или назад (Вверх или вниз)
Поиск с учетом регистра
Поиск с учетом регистра позволяет искать слова с заданным регистром. Например, города пишутся с большой буквы, но журналист где-то мог неосознанно написать название города с маленькой буквы. Что бы облегчить поиск и проверку, необходимо воспользоваться этой конфигурацией:
Поиск по целым словам
Если нажать на вторую галочку, «Только слово целиком», то поиск будет искать не по символам, а по целым словам. Т.е. если вбить в поиск только часть слова, то он его не найдет. Напимер, необходимо найти слово Ворд, при обычном поиске будут найдены все слова с разными окончаниями (Ворде, Ворду), но при нажатой галочке «Только слова целиком» этого не произойдет.
Подстановочные знаки
Более тяжелый элемент, это подстановочные знаки. Например, нам нужно найти все слова, которые начинаются с буквы м и заканчиваются буквой к. Для этого в диалоговом окне поиска нажимаем галочку «Подстановочные знаки», и нажимаем на кнопку «Специальный», в открывающемся списке выбираем нужный знак:
В результате Word найдет вот такое значение:
Поиск омофонов
Microsoft Word реализовал поиск омофонов, но только на английском языке, для этого необходимо выбрать пункт «Произносится как». Вообще, омофоны — это слова, которые произносятся одинаково, но пишутся и имеют значение разное. Для такого поиска необходимо нажать «Произносится как». Например, английское слово cell (клетка) произносится так же, как слово sell (продавать).
! из-за не поддержания русского языка, эффективность от данной опции на нуле
Поиск по тексту без учета знаков препинания
Очень полезная опция «Не учитывать знаки препинания». Она позволяет проводить поиск без учета знаков препинания, особенно хорошо, когда нужно найти словосочетание в тексте.
Поиск слов без учета пробелов
Включенная галочка «Не учитывать пробелы» позволяет находить словосочетания, в которых есть пробел, но алгоритм поиска Word как бы проглатывает его.
Поиск текста по формату
Очень удобный функционал, когда нужно найти текст с определенным форматированием. Для поиска необходимо нажать кнопку Формат, потом у Вас откроется большой выбор форматов:
Для примера в тексте я выделил Жирным текст «как найти слово в тексте Word». Весть текст выделен полужирным, а кусок текста «слово в тексте Word» сделал подчернутым.
В формате я выбрал полужирный, подчеркивание, и русский язык. В итоге Ворд наше только фрагмент «слово в тексте». Только он был и жирным и подчеркнутым и на русском языке.
После проделанных манипуляция не забудьте нажать кнопку «Снять форматирование». Кнопка находится правее от кнопки «Формат».
Специальный поиск от Ворд
Правее от кнопки формат есть кнопка «Специальный». Там существует огромное количество элементов для поиска
Через этот элемент можно искать:
- Только цифры;
- Графические элементы;
- Неразрывные пробелы или дефисы;
- Длинное и короткое тире;
- Разрывы разделов, страниц, строк;
- Пустое пространство (особенно важно при написании курсовых и дипломных работ);
- И много других элементов.
Опции, которые не приносят пользы
!Это мое субъективное мнение, если у вас есть другие взгляды, то можете писать в комментариях.
- Опция «произносится как». Не поддержание русского языка, делает эту опцию бессмысленной;
- Опция «все словоформы», опция полезная при замене. А если нужно только найти словоформы, то с этим справляется обычный поиск по тексту;
- Опция «Учитывать префикс» и «Учитывать суффикс» – поиск слов, с определенными суффиксами и префиксами. Этот пункт так же полезен будет при замене текста, но не при поиске. С этой функцией справляется обычный поиск.


















