![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уважаемые, подскажите почему запрос вида [D6, IB6.x]
twist © (2003-04-28 03:14:00)select * from table1 where f1 = "7418523" возвращает значения, а
select * from table1 where f1 LIKE "7418523" нет???
второй запрос возвращает знаения только в случае
f1 LIKE "7418523%". Почему?
twist (2003-04-29 03:41:00) [1]Точно, с типом VarChar запрос с Like работает нормально!
еще раз всем спасибо!
kaif (2003-04-28 21:18:00) [2]Проблема, очевидно, именно в типе данных CHAR. Попробуй
select * from table1 where f1 LIKE "7418523 "
AlexSerp (2003-04-28 17:01:00) [3]2 Sergey Masloff
Пардон, не внимателен.
Впрочем, я всегда использую всего пять типов данных
DATE
VARCHAR
DOUBLE PRECISION
INTEGER
BLOB
И пока проблем не имел.
Карелин Артем (2003-04-28 14:03:00) [4]>Очень странно, но в IB6 LIKE должен был запрос сработать.
А он срабатывает, если тип данных VarChar.
Sergey Masloff (2003-04-28 12:25:00) [5]AlexSerp ©
>Очень странно, но в IB6 LIKE должен был запрос сработать.
>Никаких заполнений пробелами не присутствует.
>У меня стоит WI-V6.0.1.0.
>Подобный запрос срабатывает нормально.
Компоненты доступа какие? И не стоит ли у них в свойствах дополнение Char пробелами? ;-)
AlexSerp (2003-04-28 11:41:00) [6]Очень странно, но в IB6 LIKE должен был запрос сработать.
Никаких заполнений пробелами не присутствует.
У меня стоит WI-V6.0.1.0.
Подобный запрос срабатывает нормально.
twist (2003-04-28 09:58:00) [7]всем спасибо!
Sergey Masloff (2003-04-28 08:03:00) [8]>я не знаю насчет IB6, но если провести аналогию с SQL Server >тип Char(20) - в твоем случае 7 символов, а оставшиеся 13 >заполняются пробелами, и в БД он выглядит >так: "7418523 ",
именно так. Это вообще стандарт SQL, насчет того что Char(n) пробелами дополняется.
BoxTer (2003-04-28 07:57:00) [9]синтаксис LIKE
%искомый_кусок_строкового_типа%
где:
% - вместо него могет быть подставлено ЛЮБОЕ количество произвольных символов,
_ - заменит 1 символ строки,
[] - вместо символов строки будет подставлен 1 из возможных, указанных в ограничителях,
[^] - то же самое, но КРОМЕ указанных в ограничителях
а насчет твоего случая, я не знаю насчет IB6, но если провести аналогию с SQL Server тип Char(20) - в твоем случае 7 символов, а оставшиеся 13 заполняются пробелами, и в БД он выглядит так: "7418523 ", следовательно "железный" LIKE без символов заменителей (%) не катит, потому-что остатки строки - пробелы (а они не являются "пустотой"), а работает LIKE "7418523%" - символ-заменитель замещает пробелы.
В таких случаях (и, практически, во всех остальных) я использую varchar(20) - здеся остатки не заменяются пробелами...
twist (2003-04-28 07:45:00) [10]to АлексейК Char(20)
АлексейК (2003-04-28 04:21:00) [11]Тип поля?