Можно-ли в запросах делать поиск по BLOB?
01.01.2001
Дмитрий Кузьменко
Да.
Поиск по строковым (CHAR, VARCHAR) полям или по BLOB можно
производить при помощи операторов CONTAINING, STARTING WITH и LIKE.
Например
SELECT * FROM MYTABLE
WHERE BLOBFIELD CONTAINING 'sometext';
Поиск по умолчанию считается case-insensitive (регистро-нечувствительный), поэтому для латинских букв строку поиска можно задавать строчными буквами (в нижнем регистре). В этом случае при поиске 'sometext' в ответ войдут записи с 'sometext', 'SOMETEXT' и 'SomeText'.
К сожалению, для BLOB невозможно указать COLLATE для правильного перевода русских букв в верхний регистр, поэтому поиск слов, содержащих русские буквы, будет производиться только по точному совпадению.
При поиске подтип BLOB (SUB_TYPE 0 или 1 - текст или binary) не имеет значения, т.к. подтип имеет значение только для приложения, или для фильтров BLOB. BLOB-ы разных подтипов хранятся абсолютно одинаковым способом.
Cоставитель: Дмитрий Кузьменко
E-mail mailto:delphi@demo.ru
www: http://www.ibase.ru/
Телефоны: 953-13-34

