溫馨提示×

溫馨提示×

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

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

T-SQL---多值模糊查詢的處理

發(fā)布時間:2020-06-05 01:04:20 來源:網(wǎng)絡(luò) 閱讀:475 作者:26度出太陽 欄目:網(wǎng)絡(luò)安全

    

多值模糊查詢的處理

所謂多值模糊查詢,就是應(yīng)用程序中傳遞過來多個參數(shù),對這些參數(shù)做拆分,拆分之后,對拆分結(jié)果的key值分別做模糊查詢處理

對于精確匹配時,不管是單個Key值還是多個Key值,都很容易處理,備選方案也很多

對于模糊查詢,單個key值也很容易,也就是 ……where name like '%parameter%'(不要告訴我全模糊效率低之類的,我這里不是做性能對比的)

但是對于多個Key值的模糊處理,就不是太直接了,比如name字段,輸入'三,四,五',要求分別按照三,四,五三個字符做模糊匹配

 

多值模糊查詢可以參考如下的方式處理,歡迎提供更好的辦法,謝謝了

T-SQL---多值模糊查詢的處理

CREATE TABLE [dbo].[Student](    [S#] [varchar](50) NULL,    [Sname] [varchar](50) NULL,    [Ssex] [varchar](2) NULL)INSERT INTO Student VALUES (1,'張三',1)INSERT INTO Student VALUES (2,'李四',1)INSERT INTO Student VALUES (3,'王五',1)INSERT INTO Student VALUES (4,'趙六',1)INSERT INTO Student VALUES (5,'孫七',1)--精確匹配的話,不管是單值還是多值,都很好處理select * from Student where Sname in ('張三','李四')--單值模糊的好處理select * from Student where Sname Like '%五%'--多值模糊匹配,就沒有這么直接了--所謂的多值模糊匹配,就是外面?zhèn)鬟f進(jìn)來多個值,這些值差分開之后,每個值都做模糊查詢--SQL既要寫滿足功能性需求,又要簡明的清晰,一開始還想寫函數(shù)什么玩意的,--后來想了想,可以這么處理;with CTENameas(    --這是一個字符串拆分函數(shù)
    select id,concat('%',s,'%') as name from dbo.f_splitStrToTable('四,五,六',',')
)select * from Studentwhere exists(    select 1 from CTEName where Sname like name
)--查詢結(jié)果S# Sname Ssex2 李四 13 王五 14 趙六 1(3 row(s) affected)

T-SQL---多值模糊查詢的處理


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI