LMS知識社群各系上網率圖資處首頁登入
位置: 鄭光盛 > 技術 > SQL
【SQL】 Like 像 IN 一樣一次指定多個條件
by 鄭光盛 2013-10-21 17:27:41, 回應(0), 人氣(69556)
有人問 SQL 的 Like 可不可以用
select * from tableA where col1 like in ('%abc%','%def%')
這種方式,目前不被接受。
但有變通的方法

[方法1]
select tblA.* from tableA tblA join 
( select '%abc%' as c1 union select '%def%' as c1) tblB on tblA.col1 like tblB.c1;

[方法2]
先建立一個拆字串的 function,回傳拆開的字串組成的 table,放在 欄位 c
select tblA.* from tableA tblA join dbo.fn_split_tbl('abc,def',',') tblB on tblA.col1 like '%'+tblB.c+'%';


select tblA.* from tableA tblA join dbo.fn_split_tbl('%abc%,%def%',',') tblB on tblA.col1 like tblB.c;


這樣就可以實現一次 like 很多條件的查詢
甚至可以把 tblB 換成實體 table的欄位值來查詢 
標籤: SQL