На самом деле вопрос задавали несколько раз, но мне не удалось найти ответ.Функция SQLite upper() для международных символов
Существует набор таблиц SQLite, которые доступны только для чтения - я не могу изменить их структуру или переопределить правила сортировки. Таблицы, содержащие несколько международных символов (русский/китайский и т. Д.).
Я хотел бы получить некоторые регистронезависимый выбор как:
select name from names_table where upper(name) glob "*"+constraint.toUpperCase()+"*"
Он работает только тогда, когда name
является латинским/ASCII кодировки для международных символов он не работает.
руководства SQLite читает:
Функция верхней (X) возвращает копию входной строки X, в котором все строчных символы ASCII преобразуется в их прописной эквивалентном.
Итак, вопрос в том, как решить эту проблему и сделать международные символы в верхнем/нижнем регистре?
Мои таблицы доступны только для чтения - я не могу изменить их структуру. – barmaley
Вы можете использовать другую базу данных с необходимыми таблицами и столбцами и прикрепить эту БД к исходной. Однако в этом случае процесс синхронизации будет более сложным. – matreshkin
@matreshkin Привет! Не могли бы вы быть более конкретными для реализации метода AsciiEquivalent()? Может быть, пример кода? Также я прав, что он также может использоваться с инструкцией LIKE? – AlexKost