Выборка из БД с условием LIKE, нужен совет ...

ИА
На сайте с 12.02.2014
Offline
56
404

Доброго времени суток.

Только начинаю изучать ПХП, поэтому прошу сильно тапками не закидывать.

Задача такая:

Выбрать из таблицы все записи, которые начинаются, допустим, с букв от "a" до "f".

Пытаюсь вывести с помощью запроса

SELECT `поле` FROM `таблица` WHERE `поле` LIKE '[a-f]%';

Не работает и все! Выдает, что нет данных подходящих условию.

Если вывести любую букву из заданного диапазона отдельно

SELECT `поле` FROM `таблица` WHERE `поле` LIKE 'd%';

то все отлично работает.

Нашел рабочее решение по выводу через REGEXP

SELECT `поле` FROM `таблица` WHERE `поле` REGEXP '(^[a-f])';

Но интересует, почему не выводит через LIKE? И есть ли способы еще каким-нибудь образом сделать такую выборку?

ДП
На сайте с 23.11.2009
Offline
189
#1

LIKE - это простое ставнение строк посимвольно с двумя возможными спецсимволами - % и _. Если нужны более сложные условия - то как вы уже выяснили надо использовать регулярки. https://dev.mysql.com/doc/refman/8.0/en/pattern-matching.html

Ю9
На сайте с 04.04.2014
Offline
49
#2

SELECT `поле` FROM `таблица` WHERE `поле` LIKE 'a%' or `поле` LIKE 'b%' or `поле` LIKE 'c%' or `поле` LIKE 'd%' or `поле` LIKE 'e%' or `поле` LIKE 'f%'

зы я не программист

M
На сайте с 04.10.2011
Offline
90
#3
Илья Артурович:
Не работает и все!

Почему решили что LIKE - это REGEXPR :)

LIKE максимум обозначает "любой" символ в конце и(или) начале через %

Сдается, обращаться скайп avdesk-it-kmm Верстка, кодинг - контакты в профиле... VPS от 5€ (https://gmhost.com.ua/?partner=10255)
Оптимизайка
На сайте с 11.03.2012
Offline
396
#4
Илья Артурович:
есть ли способы еще каким-нибудь образом сделать такую выборку?

https://dev.mysql.com/doc/refman/5.6/en/regexp.html

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!

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