like ' %' - не работает. Почему?

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

like ' %' - не работает. Почему?

Сообщение DSKalugin » 09 дек 2005, 15:53

Делаю выборку номеров, начинающихся с пробела

Код: Выделить всё

SELECT * from "sklad"
where "sklad_number" like ' %'
выборка пустая, но такие номера есть!
Когда подставляю like ' 8%' - выборка не пустая

В чем проблема?

Индекс по этому полю есть

Код: Выделить всё

CREATE INDEX "IDX_SellCod" ON "sklad" ("sklad_number");
---------------------
ФБ 1,5,2 СС Вин2003

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 09 дек 2005, 15:58

Индекс убей. И если начнет работать - сообщение с тестовым скриптом в firebird-devel или buglist на sourceforge.
Но сначала проверь, может быть это уже починено в FB2. Там языковой модуль был сильно искорежен.

DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

этот баг уже исправлен в ФБ2

Сообщение DSKalugin » 09 дек 2005, 17:27

На других таблицах в этой же базе проверено - тоже самое.
У коллег поинтересовался - тоже не находятся записи по такому условию запроса, но ФБ2 в этой же базе корректно запрос выполняет.
Выходит, этот баг уже исправлен в ФБ2

Когда же можно будет уже пересаживаться на ФБ2 (стабильный релиз)?

DSKalugin
Сообщения: 212
Зарегистрирован: 27 окт 2004, 13:39

Сообщение DSKalugin » 09 дек 2005, 18:01

А если явно указать в запросе Collate PXW_CYRL или WIN1251
то выборка показывает данные

Код: Выделить всё

SELECT * from "sklad"
where "sklad_number" like ' %'  Collate WIN1251
разве этого SET NAMES WIN1251; не достаточно было при создании базы и таблицы

можно ли подобным образом задавать коллате?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 12 дек 2005, 08:29

Когда же можно будет уже пересаживаться на ФБ2 (стабильный релиз)?
Вполне возможно что тебе поможет и обновление до 1.5.3. Там был поправлен баг с пропаданием charset у констант.

Ответить