【SQL】 Like 像 IN 一樣一次指定多個條件
有人問 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