Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.03;
Скачать: CL | DM;

Вниз

SQL и AND и OR   Найти похожие ветки 

 
mate ©   (2003-01-18 09:29) [0]

Как мне написать запрос который бы находил все требуемые записи без учёта регистра. И как при этом использовать AND и OR.
Пусть у меня есть 3 Edita в которые могут (но не обязательно) записываться данные для поиска, я пишу
form7.Query1.SQL.Add("select *");
form7.Query1.SQL.Add("from "db_ineasat.db" ");
form7.Query1.SQL.Add("WHERE "db_ineasat.db"."key">0");
if form1.Edit2.Text<>"" then
begin
form7.Query1.SQL.Add("AND ("db_ineasat.db"."name" LIKE ""%"+form1.Edit2.Text+"%"" ");
form7.Query1.SQL.Add("OR "db_ineasat.db"."name" LIKE ""%"+LowerCase(form1.Edit2.Text)+"%"" ");
form7.Query1.SQL.Add("OR "db_ineasat.db"."name" LIKE ""%"+UpperCase(form1.Edit2.Text)+"%"") ");
end;

if form1.Edit3.Text<>"" then
begin
form7.Query1.SQL.Add("AND ("db_ineasat.db"."boss" LIKE ""%"+form1.Edit3.Text+"%"" ");
form7.Query1.SQL.Add("OR "db_ineasat.db"."boss" LIKE ""%"+LowerCase(form1.Edit3.Text)+"%"" ");
form7.Query1.SQL.Add("OR "db_ineasat.db"."boss" LIKE ""%"+UpperCase(form1.Edit3.Text)+"%"") ");
end;

if form1.Edit4.Text<>"" then
begin
form7.Query1.SQL.Add("AND ("db_ineasat.db"."phone" LIKE ""%"+form1.Edit4.Text+"%"" ");
form7.Query1.SQL.Add("OR "db_ineasat.db"."phone" LIKE ""%"+LowerCase(form1.Edit4.Text)+"%"" ");
form7.Query1.SQL.Add("OR "db_ineasat.db"."phone" LIKE ""%"+UpperCase(form1.Edit4.Text)+"%"") ");
end;
Но запрос мне ищет только точные совпадения с Edit-aми.
Помогите, плиз.


 
Suntechnic ©   (2003-01-18 09:49) [1]

Например привести всё к верхнему регистру используя ф-цию UPPER


 
mate ©   (2003-01-18 10:03) [2]

А разве UpperCase не приводит всё к верхнему регистру?


 
Suntechnic ©   (2003-01-18 10:12) [3]

Приводит, но в вашем случае только то, что стоит по правую часть выражения. А кто будет приводить к верхнему регистру то поле по которому идёт сравнение? Используйте ф-цию SQL UPPER.
Что то типа:
"OR UPPER("db_ineasat.db"."boss") LIKE ""UPPER(%"+form1.Edit3.Text+"%)"") "



Страницы: 1 вся ветка

Текущий архив: 2003.02.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
7-5312
Shtock
2002-11-26 11:08
2003.02.03
инициализация модема


1-4920
Checist [root]
2003-01-26 01:16
2003.02.03
Типа клавиши, блин


3-4769
nv-vetal
2003-01-16 13:30
2003.02.03
Запрос WHERE и дата. Пишу типа WHERE Date =


3-4778
CPPBuilderDev
2003-01-16 19:24
2003.02.03
ПОМОГИТЕ, извелся весь (модератору плииз не пинать)!


1-5040
KKK
2003-01-23 15:41
2003.02.03
Про запуск на удаленной машине