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

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

Sql и независимость от регистра символов


Igr ©   (2002-08-19 11:12:00) 

Есть некоторое символьное поле. Соответственно данные там могут быть как в верхнем регистре так и нижнем. Поиск осуществляется примерно так:
SELECT * FROM nnn WHERE fff like "поиск%"
Однако такой поиск позволяет искать либо в нижнем, либо в верхнем если добавить UPPER.
Можно ли каким-либо образом не сильно усложняя запрос осуществить поиск в обоих регистрах?
Может есть какая-то функция, которая приводит к одному регистру и ключ поиска и выражение?
СПАСИБО.


Igr   (2002-08-19 12:52:00) [1]

То есть если я правильно понял это особенность DBase (невозможность работы с МЕМО полем) и запрос никоем образом не отработает? Так. Остается тогда в лоб перебором и приведением к строке?


Anatoly Podgoretsky   (2002-08-19 12:44:00) [2]

Так забудь про сравнение с Мемо полем, а так и для большинства других баз


Igr   (2002-08-19 12:37:00) [3]

DBase ;)


Alexandr   (2002-08-19 12:19:00) [4]

колись, какая у тебя СУБД


Igr   (2002-08-19 12:15:00) [5]

А если поле не символьное, а МЕМО, то как быть? В этом случае UPPER(FIELD_MEMO) дает ошибку несовместимости типов. Как их можно привести друг к другу?


Igr   (2002-08-19 11:22:00) [6]

Н-дааа. Тормоза включил на всю катушку... :)
СПАСИБО.


Alexandr   (2002-08-19 11:22:00) [7]

тут главное чтобы индекс поддерживал регистронезависимоть, а то он не будет использоваться. :)

И именно эта проблема чаще всего имеет решающее значение, заставляющее создавать еще одно поле, в которое записывать тоже, но одинаковым регистром букв и like делать уже по этому полю.


Johnmen   (2002-08-19 11:18:00) [8]

Ты сам уже ответил на свой вопрос...:)
SELECT * FROM nnn WHERE UPPER(fff) like UPPER("поиск%")


Наверх

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