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

Вниз

Уважаемые, подскажите почему запрос вида   Найти похожие ветки 

 
twist ©   (2003-04-28 03:14) [0]

select * from table1 where f1 = "7418523" возвращает значения, а
select * from table1 where f1 LIKE "7418523" нет???
второй запрос возвращает знаения только в случае
f1 LIKE "7418523%". Почему?


 
АлексейК   (2003-04-28 04:21) [1]

Тип поля?


 
twist ©   (2003-04-28 07:45) [2]

to АлексейК Char(20)


 
BoxTer ©   (2003-04-28 07:57) [3]

синтаксис LIKE
%искомый_кусок_строкового_типа%
где:
% - вместо него могет быть подставлено ЛЮБОЕ количество произвольных символов,
_ - заменит 1 символ строки,
[] - вместо символов строки будет подставлен 1 из возможных, указанных в ограничителях,
[^] - то же самое, но КРОМЕ указанных в ограничителях
а насчет твоего случая, я не знаю насчет IB6, но если провести аналогию с SQL Server тип Char(20) - в твоем случае 7 символов, а оставшиеся 13 заполняются пробелами, и в БД он выглядит так: "7418523 ", следовательно "железный" LIKE без символов заменителей (%) не катит, потому-что остатки строки - пробелы (а они не являются "пустотой"), а работает LIKE "7418523%" - символ-заменитель замещает пробелы.
В таких случаях (и, практически, во всех остальных) я использую varchar(20) - здеся остатки не заменяются пробелами...


 
Sergey Masloff   (2003-04-28 08:03) [4]

>я не знаю насчет IB6, но если провести аналогию с SQL Server >тип Char(20) - в твоем случае 7 символов, а оставшиеся 13 >заполняются пробелами, и в БД он выглядит >так: "7418523 ",
именно так. Это вообще стандарт SQL, насчет того что Char(n) пробелами дополняется.


 
twist ©   (2003-04-28 09:58) [5]

всем спасибо!


 
AlexSerp ©   (2003-04-28 11:41) [6]

Очень странно, но в IB6 LIKE должен был запрос сработать.
Никаких заполнений пробелами не присутствует.
У меня стоит WI-V6.0.1.0.
Подобный запрос срабатывает нормально.


 
Sergey Masloff   (2003-04-28 12:25) [7]

AlexSerp ©
>Очень странно, но в IB6 LIKE должен был запрос сработать.
>Никаких заполнений пробелами не присутствует.
>У меня стоит WI-V6.0.1.0.
>Подобный запрос срабатывает нормально.
Компоненты доступа какие? И не стоит ли у них в свойствах дополнение Char пробелами? ;-)


 
Карелин Артем ©   (2003-04-28 14:03) [8]

>Очень странно, но в IB6 LIKE должен был запрос сработать.
А он срабатывает, если тип данных VarChar.


 
AlexSerp ©   (2003-04-28 17:01) [9]

2 Sergey Masloff
Пардон, не внимателен.
Впрочем, я всегда использую всего пять типов данных

DATE
VARCHAR
DOUBLE PRECISION
INTEGER
BLOB

И пока проблем не имел.


 
kaif ©   (2003-04-28 21:18) [10]

Проблема, очевидно, именно в типе данных CHAR. Попробуй
select * from table1 where f1 LIKE "7418523 "


 
twist ©   (2003-04-29 03:41) [11]

Точно, с типом VarChar запрос с Like работает нормально!
еще раз всем спасибо!



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
3-59624
Remis
2003-04-29 01:37
2003.05.19
SQL добавлание записи


9-59530
ogo
2002-12-10 10:12
2003.05.19
телстурирование в opengl


6-59824
[BAD]Angel
2003-03-20 18:26
2003.05.19
Как получить строку из Socker?


4-59986
AlexRush
2003-03-18 13:25
2003.05.19
своя GetModuleHandle


3-59625
AleksandrKu
2003-04-28 16:21
2003.05.19
доступ к Betrive?