一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Sqlite - SQLite字符串比較時(shí)的大小寫問題解決方法

SQLite字符串比較時(shí)的大小寫問題解決方法

2020-06-08 17:48dodo8 Sqlite

這篇文章主要介紹了SQLite字符串比較時(shí)的大小寫問題解決方法,本文總結(jié)了比較字符串時(shí)的大小寫問題的3種解決方案,需要的朋友可以參考下

大部分?jǐn)?shù)據(jù)庫在進(jìn)行字符串比較的時(shí)候,對大小寫是不敏感的。但是,最近使用SQLite的時(shí)候,卻發(fā)現(xiàn)它的情況恰好相反。

假設(shè)表User的結(jié)構(gòu)和值如下:

 

 

UserName

1

User1

 

執(zhí)行下面的SQL語句:

復(fù)制代碼 代碼如下:

SELECT * FROM [User] WHERE UserName = 'user1'


結(jié)果是沒有找到任何記錄。明顯地,SQLite在進(jìn)行字符串比較的時(shí)候,默認(rèn)對大小寫是敏感的。這會(huì)對應(yīng)用程序造成不良的影響。比如,用戶在輸入用戶名的時(shí)候必須嚴(yán)格按照大小寫輸入,這是一種很不好的用戶體驗(yàn);用戶表中可能同時(shí)存在 user 和 USER 兩個(gè)用戶,容易造成混淆。

 

由于SQLite是近年來才興起的數(shù)據(jù)庫,中文資料少得很。Google了一些英文資料,終于找到了三種解決方案:

方案一:使用大小寫轉(zhuǎn)換函數(shù)LOWER、UPPER

復(fù)制代碼 代碼如下:

SELECT * FROM [User] WHERE LOWER(UserName) = 'user1'


方案二:在進(jìn)行比較時(shí)強(qiáng)制聲明不區(qū)分大小寫

復(fù)制代碼 代碼如下:

SELECT * FROM [User] WHERE UserName = 'user1' COLLATE NOCASE


方案三:創(chuàng)建表時(shí)聲明該字段不區(qū)分大小寫

復(fù)制代碼 代碼如下:

CREATE TABLE [User] ( [UserName] NVARCHAR(20) COLLATE NOCASE );


如果在任何情況下都不需要對大小寫敏感,方案三是最好的解決方案;如果只是少量查詢對大小寫不敏感,可以用方案二。而方案一由于用到了函數(shù),可能有額外的性能損失,不推薦使用。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲免费视频一区二区三区 | 九九九九九九精品免费 | 久久精品亚洲牛牛影视 | 国产男人搡女人免费视频 | 四虎精品永久免费 | 日本性漫画| 国产午夜视频在线观看网站 | 91麻豆精品国产91久久久 | 亚洲精品视频网 | 高清国产激情视频在线观看 | 无限在线看免费视频大全 | 精新精新国产自在现拍 | 性色香蕉AV久久久天天网 | 小妇人电影免费完整观看2021 | 国产hd老太婆 | 女人叉开腿让男人捅 | 女人把私密部位张开让男人桶 | 免费一级毛片在线播放放视频 | 日本免费观看的视频在线 | 四虎在线最新永久免费 | x8x8在线观看免费 | 高清一区| 性刺激欧美三级在线现看中文 | 青青热久麻豆精品视频在线观看 | 色亚洲视频 | 2019中文字幕 | 久久黄色免费 | 国产自在自线午夜精品之la | 草嫩社区| 精品国产欧美一区二区五十路 | aaaaa特级毛片 | 国产一区二区三区免费在线视频 | 日本制服丝袜 | 男女天堂 | 热99re久久精品国产 | 国产欧美一区二区三区免费 | 国内久久久 | 三级欧美在线 | 日本网络视频www色高清免费 | 红杏劫| 亚洲 日韩 自拍 视频一区 |