Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Регистро-независимый поиск [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%' ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо