91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL的模糊查詢怎么實現

發布時間:2022-03-21 16:54:13 來源:億速云 閱讀:988 作者:iii 欄目:數據庫

本篇內容介紹了“SQL的模糊查詢怎么實現”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

前言

說到SQL的模糊查詢,最先想到的,應該就是like關鍵字。

當我們需要查詢包含某個特定字段的數據時,往往會使用 ‘%關鍵字%' 查詢的方式。例如:

SELECT ... FROM 表名 WHERE 字段名 LIKE '%關鍵字%'

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

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

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

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

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

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

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

CHARINDEX登場

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

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

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

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

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

了解了使用方法之后,我們就可以運用CHARINDEX關鍵字優化下我們的SQL語句:

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

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

對應的mybatis實現也相對簡潔

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

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

“SQL的模糊查詢怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

石门县| 宜兰县| 交口县| 邛崃市| 石柱| 合作市| 敦煌市| 宜君县| 盐池县| 商河县| 赣榆县| 德令哈市| 德庆县| 宁城县| 化州市| 大同市| 梅州市| 凌云县| 镇远县| 都兰县| 新竹县| 尤溪县| 远安县| 巴青县| 张掖市| 扶风县| 西乡县| 自贡市| 德州市| 西乌珠穆沁旗| 搜索| 深水埗区| 威宁| 渝北区| 新乡县| 七台河市| 运城市| 六枝特区| 宜宾市| 鸡泽县| 泉州市|