LINUX.ORG.RU

sqlite3 и регистронезависимый поиск по русскому Unicode

 


1

1

xubuntu 12.04.03
sqlite 3.7.9 (ставился из офи.реп xubuntu)
БД sqlite в unicode, русские символы соотв.

делаю:
select
*
from node i
where
lower(i.title) LIKE
'%киев%'

естественно, «Киев» не находится

Как быть и куда бежать?
Работать предполагается через консольный клиент (+ Sqliteman), есличто.

Ответ на: комментарий от wota

А не лучше отдельно либу собирать и подключать по необходимости?

anonymous ()

Как быть и куда бежать?

Добавить ещё одно поле с тем же значением, но в нижнем регистре; обновлять его триггером. Искать по нему, переводя запрос в нижний регистр.

i-rinat ★★★★★ ()
Ответ на: комментарий от hizel

Пока не поздно откройте для себя тег [code].

я так понял, что он не работает при включенном построчном режиме комментирования?

MinasFilm ()
Ответ на: комментарий от i-rinat

Добавить ещё одно поле с тем же значением, но в нижнем регистре; обновлять его триггером. Искать по нему, переводя запрос в нижний регистр.

это хорошая мысль конечно, но БД распухнет в два раза минимум + увеличится время на insert-ы (что таки критично, ибо БД мучается очень часто на запись)

MinasFilm ()
Ответ на: комментарий от MinasFilm

но БД распухнет в два раза минимум + увеличится время на insert-ы (что таки критично, ибо БД мучается очень часто на запись)

Значит sqlite — плохой выбор в данном случае.

i-rinat ★★★★★ ()
Ответ на: комментарий от i-rinat

Значит sqlite — плохой выбор в данном случае.

это не мой выбор, а программы-клиента

кстати начал делать по вашему рецепту, добавил столбцы, апдейтнул:
update main.items set title_l=lower(title);
та же хрень - русские буквы остались большими

MinasFilm ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.