2013-03-11 59 views
4

讓我們考慮一個條目DOMAIN={domain1,domain2,domain3},如何測試domain1domain2domain3是否在列表中?在一個條目中用逗號分隔的循環子串

例如:list={domain5, domain 2, domain6}

------------------------------------ 
| CONTEXT |  DOMAIN   | 
-----------------------------------| 
| context1 |domain1,domain2,domain3| 
|----------------------------------| 

我試圖 SELECT * FROM table WHERE SUBSTRING_INDEX(domain, ',', 1) IN {'domain5', 'domain 2', 'domain6'}但這僅適用於第一個值的逗號之前(域1)

+2

MSSQL? MySQL的?甲骨文? – 2013-03-11 08:40:17

回答

0

對於SQL Server使用用戶定義的函數從CodeProject

+0

在MySQL中有沒有等同於'dbo.fn_ParseText2Table'? – simo 2013-03-11 08:48:47

0

與MySQL你可以連接你的領域,並使用這樣的regexp

SELECT 
    * 
FROM table1 
WHERE CONCAT(',', domain, ',') REGEXP ',domain1,|,domain2,|,domain1,' 
0

爲什麼不使用LIKE運算符以百分比(%)通配符。

Select * From tablename 
where DOMAIN Like '%domain1%' 
or DOMAIN Like '%domain2%' 
or DOMAIN Like '%domain3%'