Форум: "Базы";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];
ВнизУважаемые, подскажите почему запрос вида Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c