![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Какой Select выбирает текст не зависимо от регистра [D7, Paradox]
Alex7 © (2007-03-29 14:12:00)Подскажите, пожалуйста, как написать Select, чтобы он выбирал строки игнорируя регистр написания букв.
Запрос, сформированный:
MySql.SQL.Add('Select NameField From MyTable M')
MySql.SQL.Add('WHERE M.NameField Like' + '"%' + Edit1.Text + '%"')
выдает только полное соответсвие (с учетом регистра букв) заданного текста. Нужно, чтобы регистр при выборе игнорировался.
ANB (2007-03-29 17:48:00) [1]
> индексы при его условии like и так не используются... и
> это похоже в любом sql сервере/движке.
Не используются только, если поиск идет не с начала строки
Desdechado (2007-03-29 15:47:00) [2]> индексы при егоусловии like и так не используются
Если убрать лидирующий процент, то будут, возможно. Если не убирать, скорее всего не будут (если других условий не добавить).
sniknik (2007-03-29 15:09:00) [3]индексы при его условии like и так не используются... и это похоже в любом sql сервере/движке.
Sergey13 (2007-03-29 15:05:00) [4]> А я и не грил, что у тебя неверное.
А я думал это наезд. 8-)
ANB (2007-03-29 15:00:00) [5]
> Sergey13 © (29.03.07 14:36) [3]
А я и не грил, что у тебя неверное.
Но более быстрых 2 :
1. Использовать функциональный индекс (если СУБД их поддерживает) типа Upper(name)
2. Имет в таблице 2 поля - 1 обычное, второе - завсегда переведенное в верхний регистр. И искать по второму (не забыв самой строке сделать upper()).
У МС СКЛ есть свое решение - он при определенных настройках (кстати, вроде как по умолчанию) сам в индексах и при поиске регистр игнорит.
Sergey13 (2007-03-29 14:36:00) [6]> [2] ANB © (29.03.07 14:35)
Ну предложи с "индексным" решением. 8-)
ANB (2007-03-29 14:35:00) [7]
> Например upper
При этом индексы, скорее всего, отваляться (если парадокс не поддерживает функциональные).
Sergey13 (2007-03-29 14:18:00) [8]> как написать Select, чтобы он выбирал строки игнорируя регистр написания букв.
написать с функцией приведения к одному ренистру. Например upper