2013-03-11 60 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%'