大部分數據庫在進行字符串比較時,對大小寫是不敏感的。但是SQLite卻是大小寫敏感的。如果想讓SQLite忽略大小寫,方法如下:
-
方法一:使用大小寫轉換函數LOWER、UPPER
SELECT * FROM User WHERE LOWER(UserName) = ‘user1′;
- 方法二:在進行比較時強制聲明不區分大小寫
SELECT * FROM User WHERE UserName = ‘user1′ COLLATE NOCASE;
- 方法三:創建表時聲明該列不區分大小寫
CREATE TABLE User (UserName NVARCHAR(20) COLLATE NOCASE);
如果在任何情況下都不需要對大小寫敏感,就使用方法三;如果只是少量查詢對大小寫不敏感,可以用方法二。而方法一用到了函數,可能會影響查詢速度,儘量不用
備註:可能有些人的sqlite不區分大小寫
參考下述:
sqlite like 通配符 ,匹配區分大小寫(默認不區分大小寫)
在查詢前先執行這個語句 , 1 時區分大小寫,0時不區分
PRAGMA case_sensitive_like =0;
select prod_name,PROD_PRICE
from products
where prod_name like 'b%' -- PRAGMA case_sensitive_like =0 匹配B和b開頭的 ;=1時 僅匹配b開頭的