久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL的模糊查詢怎么實現(xiàn)

195次閱讀
沒有評論

共計 1256 個字符,預(yù)計需要花費 4 分鐘才能閱讀完成。

本篇內(nèi)容介紹了“SQL 的模糊查詢怎么實現(xiàn)”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

前言

說到 SQL 的模糊查詢,最先想到的,應(yīng)該就是 like 關(guān)鍵字。

當(dāng)我們需要查詢包含某個特定字段的數(shù)據(jù)時,往往會使用‘% 關(guān)鍵字 % 查詢的方式。例如:

SELECT ... FROM  表名  WHERE  字段名  LIKE  % 關(guān)鍵字 %

這應(yīng)該可以算是一種典型的”包含 XXX”的方式,但如果我們需要查詢字段被包含于特定字符的數(shù)據(jù)時呢?

比如,我有一張聯(lián)系人數(shù)據(jù)表 ConnectName,其中有個字段用于記錄姓名 name。我想獲取名為小蘭和灰原的人的聯(lián)系資料。正常情況下,我們首先能想到的做法應(yīng)該是:

SELECT * FROM ConnectName WHERE name =  小蘭  OR name =  灰原 

這樣的做法是可以實現(xiàn)這種目的的。如果這時候,我突然想,再查一個人,比如說“柯南”,那么我們就要修改 SQL 的結(jié)構(gòu),添加一個 Where 條件句:

SELECT * FROM ConnectName WHERE name =  小蘭  OR name =  灰原  OR name =  柯南 

我們知道,OR 條件查詢本身是屬于效率較低的,而且結(jié)構(gòu)變動的語句在 MyBatis 實現(xiàn)稍微麻煩些(當(dāng)然也是可以實現(xiàn)的,遍歷插入字段就行了)。

能不能簡單一些呢?我可以把所有關(guān)鍵字放在一起,只用一個 Where 條件去實現(xiàn)嗎?

CHARINDEX 登場

這時候,我們就可以用 CHARINDEX 關(guān)鍵字了,CHARINDEX 可以返回某個字段在一串文字中出現(xiàn)的位置,跟 String 的 indexOf 用法類似,不多廢話,我們來舉個栗子:

CHARINDEX(李白 , 曹操很帥) =0

在上面的栗子中,因為曹操很帥不包含李白關(guān)鍵字,所以找不到,返回 0.

CHARINDEX(李白 , 李白很帥) =1

同樣的栗子,因為包含里李白關(guān)鍵字,會返回關(guān)鍵字所在的開頭第一個字的索引,所以返回 1.

了解了使用方法之后,我們就可以運用 CHARINDEX 關(guān)鍵字優(yōu)化下我們的 SQL 語句:

SELECT * FROM ConnectName WHERE CHARINDEX(name , 小蘭灰原柯南) 0

如果 name 字段對應(yīng)的名字在‘小蘭灰原柯南 中出現(xiàn),那么 CHARINDEX 函數(shù)就會返回大于 1,就可以得到我們想要的數(shù)據(jù)啦(他們 3 個人也可以在一起愉快的玩耍咯 ^-^)

對應(yīng)的 mybatis 實現(xiàn)也相對簡潔

SELECT * FROM ConnectName WHERE  !--[CDATA[ AND CHARINDEX(name ,#{ 傳入的參數(shù)}) --  0 ]]

如果后期我們想要加入一個新的人,比如毛利小五郎,只需要在傳入的參數(shù)中加入‘小蘭灰原柯南毛利小五郎 就可以了。

“SQL 的模糊查詢怎么實現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編將為大家輸出更多高質(zhì)量的實用文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-15發(fā)表,共計1256字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 怀仁县| 汕尾市| 瑞安市| 钟山县| 南康市| 新乐市| 潼关县| 庄河市| 陵川县| 鄂州市| 商都县| 富锦市| 舟山市| 巫溪县| 德阳市| 蒙自县| 依兰县| 黑山县| 英德市| 红原县| 昌图县| 横山县| 东海县| 长岛县| 罗江县| 富源县| 定兴县| 准格尔旗| 肥东县| 浪卡子县| 芒康县| 西青区| 乐亭县| 吉隆县| 静乐县| 米林县| 汤原县| 兴城市| 惠州市| 定结县| 海城市|