2016-11-08 95 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版本。