Forum Webscript.Ru
Общие => Базы данных => Тема начата: Shamandeffer от 05 Июня 2003, 01:33:04
-
У меня маленькая проблема.
При поиске в БД я использую такой сиснтаксис:
"SELECT * FROM table WHERE m_m=3 AND (m_mm REGEXP "Привет" OR m_mn REGEXP "Пивет") ORDER BY id DESC"
В мануале по MySQL написано, что в версиях MySQL до 3.23.4 REGEXP учитывает регистр символов, а начиная с версии MySQL 3.23.4, заставить REGEXP учитывать регистр символов можно с помощью ключевого слова BINARY. У меня версия 3.23.53, НО регистр REGEXP учитывает! Т.е. слово "привет" в столбце m_mm или в столбце m_mn SELECT не находит.
Как заставить REGEXP не учитывать регистр или есть другой способ?
:cool:
-
> НО регистр REGEXP учитывает!
значит у тебя столбец тоже BINARY
-
Столбцы у меня Типа TEXT
-
Ни кто не знает?
Очень Жаль....
-
ИМХО, поля типа TEXT не бинарные...
Попробуй проверить REGEXP по латинскому слову.
-
Wyclef . Попробывал я по латинскому слову, но эффект тоже - учитывает REGEXP регистр слов , УЧИТЫВАЕТ!
P.S. А что такое ИМХО?
-
А если перевести в верхний регистр, то REGEXP ищет соответствующую строку в верхнем регистре.
Может есть какая-нибудь приставка(вроде BINARY) для отмены учёта регистра?
-
А что такое ИМХО
В мануале есть пример:
mysql> select "a" REGEXP "A", "a" REGEXP BINARY "A";
-> 1 0
Т.е. в первый regexp сработал, а второй с binary нет.
По-умолчанию, regexp регистронезависимый, ИМХО...
BINARY можно задать при создании таблицы для полей типа CHAR и VARCHAR - тогда regexp для них будет регистрозависимый по-умолчанию.
-
Wyclef !
Так что такое ИМХО?
-
http://sokr.ru (http://sokr.ru/)
-
Я нашёл ответ на свой вопрос на другом форуме (конечно не такой удачный, но там тоже есть умные люди):
БЫЛО - "SELECT * FROM table WHERE m_m=3 AND (m_mm REGEXP "Привет" OR m_mn REGEXP "Пивет") ORDER BY id DESC"
НАДО - "SELECT * FROM table WHERE m_m=3 AND (UCASE( m_mm )REGEXP UCASE("Привет") OR UCASE(m_mn) REGEXP UCASE("Пивет")) ORDER BY id DESC"
Надо перевести в верний регистр содержание столбца и искомое слово. Проверил всё работает, но я так и не понял почему REGEXP ГЛЮЧИТ!!!!!!
Спасибо ВСЕМ! В часности, Wyclef , спасибо.
-
Shamandeffer:
Я нашёл ответ на свой вопрос на другом форуме
бум знать :)
Спасибо ВСЕМ!
Всегда пожалуйста! ;)