Запрос к mySQL. Первые буквы слов.

chemax
На сайте с 07.01.2009
Offline
206
12445

Как сделать запрос:

Есть бд. Данные поля title

зеленый галстук

красная заколка

снежная,красивая Зима

кто-то!зеленый/прыгал

как выбрать все записи у которых первая буква слова начинается на З? без учета регистра.

Качественный хостинг, VPS и сервера. (http://ihc.ru/?ref=569)
glab
На сайте с 10.09.2008
Offline
42
#1

Что-то вроде этого:

SELECT * FROM table WHERE title LIKE 'з%' OR title LIKE '% з%'

chemax
На сайте с 07.01.2009
Offline
206
#2
glab:
Что-то вроде этого:
SELECT * FROM table WHERE title LIKE 'з%' OR title LIKE '% з%'

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

ZiNTeR2001
На сайте с 28.05.2008
Offline
42
#3
glab:
Что-то вроде этого:
SELECT * FROM table WHERE title LIKE 'з%' OR title LIKE '% з%'

Второй вариант даст нам все слова, где есть буква З.

Если честно то давно не заморачивался и уже забыл как.

Но есть Гугл :)

www.google.ru -> sql select by first symbol

3-я ссылка

http://www.webmaster-talk.com/php-forum/29405-sql-help-select-1st-letter-last.html

Варианты решения:


1. select * from TABLE where last_name like 'A%';
2. SELECT * FROM webpagetable WHERE SUBSTRING(lastname, 0, 1) = 'm' OR SUBSTRING(lastname, 0, 1) = 'M';

Пробуйте.

ZiNTeR2001 добавил 25.07.2009 в 14:07

chemax:
спасибо за ответ. это мне каждый символ так описывать который встречается, хотя суть понял. думал через регулярки)

Только про большие и малые буквы забыли

Лабаю Медицинского центра "Евразия" (http://http://xn----7sbbhoobaglcj1a2c6o.xn--p1ai/) Плюс ещё Пытаюсь отреставрировать и воссоздать "сообщество любителей поиграть в футбол шаговой доступности" (http://www.kubgoal.ru)
chemax
На сайте с 07.01.2009
Offline
206
#4
ZiNTeR2001:
Второй вариант даст нам все слова, где есть буква З.

Если честно то давно не заморачивался и уже забыл как.
Но есть Гугл :)
www.google.ru -> sql select by first symbol

3-я ссылка
http://www.webmaster-talk.com/php-forum/29405-sql-help-select-1st-letter-last.html
Варианты решения:

1. select * from TABLE where last_name like 'A%';
2. SELECT * FROM webpagetable WHERE SUBSTRING(lastname, 0, 1) = 'm' OR SUBSTRING(lastname, 0, 1) = 'M';


Пробуйте.

ZiNTeR2001 добавил 25.07.2009 в 14:07


Только про большие и малые буквы забыли

у меня мускул без регистра работает. выдает все гдеесть пробел и за ним буква З

сейчас ваш вариант попробую. тоже спасибо за ответ)

Skom
На сайте с 02.12.2006
Offline
165
#5

Если у Вас поле не binary, то Like регистр по барабану.


SELECT * FROM table WHERE title REGEXP '^(з|З)'
Cras amet qui numquam amavit quique amavit cras amet
N
На сайте с 06.05.2007
Offline
419
#6

Очередное заблуждение. Regexp и substring работают как функции. Это значит, что сервер считает каждую строку и вызовет с ней функцию.

Эффект от создания индекса по title будет только если вы выбираете поля содержащиеся в индексе. например, только title.

А вот для выражения LIKE 'З%' индекс поможет.

Кнопка вызова админа ()
Skom
На сайте с 02.12.2006
Offline
165
#7

Согласен, смотрел на Like, потому и сморозил :)

Но, по большому счёту, поле с таким именем обязано быть с индексом :D

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий