MySQL. Как отобрать строки/поля с двумя пробелами

12
R
На сайте с 20.02.2015
Offline
59
#11

imagine, двойной пробел попадает под условие у вас:


select mytable.myfield from mytable where mytable.myfield REGEXP '^[^ ]*[ ]{1}[^ ]*[ ]{1}[^ ]*$';

* - 0 или больше

+ - 1 и более

заменить надо * на + и регулярка подходит под условия ТС

A
На сайте с 19.07.2010
Offline
130
#12
edogs:
А больше быть не может по постановке задачи.
Если додумывать задачу, то Ваш запрос тоже будет ошибочный, т.к. отсеет "слово1 слово2 слово3".

edogs: peace :) мне понравился Ваш подход к задаче, я его немного дополнил. ТЗ было в названии топика: "Как отобрать строки/поля с двумя пробелами", про больше-меньше - все может быть.

Хотя по универсальности больше подходит совет из третьего поста, что-то похожее я сам использую в одном из проектов.

LEOnidUKG, по использованию индекса в Лайках - это еще тот вопрос... утешает только, что при правильной настройке query_cache результат закешируется и при повторном обращении будет существенный выигрыш. Нужно все перепроверять с таймером на конкретных проектах, как раз через полгода займусь этим на одном их проектов. (база подрастет и возможны будут разные ой.. :) )

.............
[Удален]
#13
rereg:
заменить надо * на + и регулярка подходит под условия ТС

вы не правильно прочитали выражение, * для символов отличных от пробельных, {1} для пробела. А вообще лучшее решение, на мой взгляд в первом моем посте в этом топике

12

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