Используя СОПОСТАВЛЯЮТ в Android SQLite - Локали проигнорированы в операторе LIKE

При создании моей базы данных SQLite в Android я установил локаль базы данных - db.setLocale (новая Локаль ("cz_CZ")). Это - чешская локаль.

Оператор SELECT работает и принимает локаль во внимание, например:

SELECT * from table WHERE name='sctzy' COLLATE LOCALIZED 

Найдет запись 'ščťžý'.

Но использование LIKE перестанет работать:

SELECT * from table WHERE name LIKE '%sctzy%' COLLATE LOCALIZED 

Никакая строка не возвращается.

BTW. Нет никакого java.text. Нормализованный класс в Android. Я думал, что мог сделать второй столбец с нормализованным текстом, лишенным специальных символов, которые будут использоваться для поиска - но я пропускаю класс или путь, как нормализовать Строку.

13
задан Daniel Novak 13 August 2010 в 22:09
поделиться

1 ответ

Вы знакомы с документацией SQLite для LIKE ? Пришла информация о символах, отличных от ASCII, и об ошибке. Возможно, в Android установлена ​​более старая версия SQLite, где это проблема.

Я думаю, что второй нормализованный столбец, к сожалению, может быть вашим лучшим вариантом.

7
ответ дан 2 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: