![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Регистро-независимый поиск [D7, FB1.5]
geidarka © (2005-08-30 16:17:00)Добрый день!
Натолкнулся на очень неприятную невозсожность поиска:
select * from MAINER where FIELD1 LIKE text_poiska
Ищет нормально, но если первая буква в слове заглавная,то поиск оканчивается неудачей.Пр.
таблица БД:
No FIELD1
---------
1 Sergey
2 Michail
3 masha
при
select * from MAINER where FIELD1 LIKE m%
Выдает только машу, а мишу не выводит
Alexandr (2005-09-03 07:25:00) [1]аргумент Умар ибн Хаттаб
any comments?
Sergey_Masloff (2005-09-02 20:51:00) [2]Alexandr © (02.09.05 16:49) [6]
>криво.
Аргументы в студию
>Правильный путь - еще одно поле в UPPER обновляемое триггерами.
Правильный путь знает только Будда. Все остальные только догадываются. Доп. поле с триггерами тоже не самый прямой путь, имхо.
Fay (2005-09-02 20:36:00) [3]В MSSQL это делается легче 8)
Anatoly Podgoretsky (2005-09-02 16:52:00) [4]Sergey_Masloff (02.09.05 16:46) [5]
Ограниченная область применения
Alexandr (2005-09-02 16:49:00) [5]криво.
Правильный путь - еще одно поле в UPPER обновляемое триггерами.
Sergey_Masloff (2005-09-02 16:46:00) [6]Alexandr © (02.09.05 16:39) [4]
>если так, то следующий вопрос будет.
>"а почему индекс не используется"
А ответ легкий - хранить все в базе в UPPER-е. Или в LOWER-е - без разницы. И индексы используются и вообще кошерно. А пользователю при показе делать InitCap если есть такое желание.
Alexandr (2005-09-02 16:39:00) [7]если так, то следующий вопрос будет.
"а почему индекс не используется"
Zacho (2005-08-30 16:22:00) [8]Используй функцию UPPER
Например, select * from MAINER where UPPER(FIELD1) LIKE UPPER(text_poiska)
Johnmen (2005-08-30 16:22:00) [9]Начать наконец то читать документацию. В частности про ф-ию UPPER
Виталий Панасенко (2005-08-30 16:22:00) [10]Мдя... Суровый глюк...А если так:
select * from MAINER where UPPER(FIELD1) LIKE 'M%' ?