|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.03.2015, 00:48 | #1 |
Пользователь
Регистрация: 02.03.2015
Сообщений: 24
|
Можно ли с помощью REGEXP осуществлять регистронезависимый поиск?
Можно ли с помощью REGEXP осуществлять регистронезависимый поиск?
например: name ЯБЛОКО ЯБлоКо SELECT * FROM table WHERE name REGEXP 'яблоко'; Как сделать чтобы искалось яблоко во всех регистрах? Хотелось бы знать можно ли это сделать сразу в регулярном выражении REGEXP, без использования до запроса php, strtoupper() Как вариант нашел что можно так сделать: SELECT * FROM table WHERE name REGEXP UPPER('яблоко'); Но все же, есть ли в mysql REGEXP, как и в php, такое же /i правило? Последний раз редактировалось Microplankton; 03.03.2015 в 08:24. |
03.03.2015, 01:01 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 03.03.2015 в 01:06. |
03.03.2015, 01:11 | #3 |
Пользователь
Регистрация: 02.03.2015
Сообщений: 24
|
|
03.03.2015, 08:18 | #4 | |
Участник клуба
Регистрация: 10.08.2010
Сообщений: 1,389
|
Цитата:
lower = нижний регистр смотрите пример , вам надо lower СУБД MySQL как вы хотели Код:
Код:
Код:
Код:
E_MAIL: rijgvina7@yahoo.com
Последний раз редактировалось xxbesoxx; 03.03.2015 в 08:27. |
|
03.03.2015, 09:43 | #5 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А regexp в мускуле разве регистрозависимый? Вот смотрю
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
03.03.2015, 10:14 | #6 | |
Пользователь
Регистрация: 02.03.2015
Сообщений: 24
|
Цитата:
да, регистронезависимый. Возможно есть нюансы из-за причин данной регистронезависимости, может влияние utf-8 или еще чего. Но вот смотрите на скрин: SELECT * FROM lower2 WHERE name REGEXP('яблоко'); SELECT * FROM lower2 WHERE name='яблоко'; |
|
03.03.2015, 10:24 | #7 |
Пользователь
Регистрация: 02.03.2015
Сообщений: 24
|
+xxbesoxx Конечно спасибо, но твой вариант не подойдет ибо простой запрос where и так в моем случае ищет в любом регистре и без lower. А мне нужно обязательно регулярное выражение, так как условий в поиске очень много в моем запросе, единственное чтобы хотелось это регистронезависимость использовать.
Думаю что надо так, и все работает: SELECT * FROM lower2 WHERE lower(name) REGEXP lower(('яблоко')); Последний раз редактировалось Microplankton; 03.03.2015 в 10:28. Причина: изменено изображение запроса sql |
03.03.2015, 10:30 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
LIKE чем не устроил? По поводу regexp много обсуждений в сети его неадекватности
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
03.03.2015, 11:10 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а банальный LIKE не выручит?
например, Код:
p.s. а если нужен именно регистронезависимый regexp - то делайте приведение к одном регистру (хоть UPPER, хоть lower) и ищите. Вполне себе годный выход. Последний раз редактировалось Serge_Bliznykov; 03.03.2015 в 11:12. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Регистронезависимый фильтр в TIBTable | ifreestyler | БД в Delphi | 2 | 19.01.2015 12:50 |
Поиск тегов. RegExp | soonner | JavaScript, Ajax | 1 | 14.09.2013 14:28 |
можно ли осуществлять вывод непосредственно на экран? | Артэс | Общие вопросы C/C++ | 8 | 21.05.2010 20:08 |
С помощью чего можно реализовать? | prod87 | Общие вопросы Delphi | 5 | 30.10.2009 17:15 |
С помощью чего можно создать программу | rhaw | Помощь студентам | 8 | 05.02.2009 10:08 |