2016-11-08 5 views
-1

Я следующий запрос для чешского языка:Это ошибка в sqlite?

select Id,Name 
from Account 
where Name like '%Še%' 

вернет мне правильный результат. Но если я изменю Š к š в моем запросе:

select Id,Name 
from Account 
where Name like '%še%' 

Он ничего не возвращает. Является ли это ошибкой sqlite?

+0

Данные в Db являются УРОВЕНЬЮ LOWERCASE или ОБА? – Marco

+0

http://stackoverflow.com/questions/973541/how-to-set-sqlite3-to-be-case-insensitive-when-string-comparing – Marco

+0

Данные в Db являются верхними. И я нахожу, что если я бегу ниже запроса: выберите верхний ('še') он возвращает šE – spspli

ответ

4

https://www.sqlite.org/lang_expr.html#like:

Важное примечание: SQLite понимает только верхний/нижний регистр для ASCII символов по умолчанию. Оператор LIKE чувствителен к регистру по умолчанию для символов Unicode, которые находятся за пределами диапазона ASCII. Например, выражение 'a' LIKE 'A' имеет значение TRUE, но 'æ' LIKE 'Æ' FALSE. Расширение ICU для SQLite включает расширенную версию оператора LIKE, которая выполняет свертывание всех символов Unicode.

Таким образом, решением вашей проблемы было бы получить версию SQLite с расширением ICU.

 Смежные вопросы

  • Нет связанных вопросов^_^