2016-11-08 93 views
-1

我有以下查询捷克语:这是一个在sqlite中的错误?

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

它将返回我正确的结果。但是,如果我在我的查询更改Šš

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

它没有返回。这是一个SQLite错误?

+0

Db中的数据是大写小写字母还是两个字母? – Marco

+0

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

+0

Db中的数据是大写字母。我发现如果我运行下面的查询:select upper('še')它返回šE – spspli

回答

4

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

重要提示:SQLite的只能理解为默认的ASCII字符/小写。对于超出ASCII范围的unicode字符,LIKE运算符默认为区分大小写。例如,表达式'a'LIKE'A'为TRUE,但'æ'LIKE'Æ'为FALSE。 ICU对SQLite的扩展包括LIKE运算符的增强版本,它在所有unicode字符中进行大小写折叠。

所以你的问题的解决方案是获得一个带有ICU扩展名的SQLite版本。