条目中用逗号分隔的循环子字符串
Posted
技术标签:
【中文标题】条目中用逗号分隔的循环子字符串【英文标题】:Loop substrings separated by comma in an entry 【发布时间】:2013-03-11 08:38:44 【问题描述】:让我们考虑一个条目DOMAIN=domain1,domain2,domain3
,我如何测试domain1
或domain2
或domain3
是否在列表中?
例如:list=domain5, domain 2, domain6
------------------------------------
| CONTEXT | DOMAIN |
-----------------------------------|
| context1 |domain1,domain2,domain3|
|----------------------------------|
我试过了
SELECT * FROM table WHERE SUBSTRING_INDEX(domain, ',', 1) IN 'domain5', 'domain 2', 'domain6'
但这仅适用于逗号之前的第一个值 (domain1)
【问题讨论】:
MSSQL? mysql?甲骨文? 【参考方案1】:对于 SQL Server,使用来自CodeProject 的用户定义函数
【讨论】:
MySQL 中有没有等价于dbo.fn_ParseText2Table
的东西?【参考方案2】:
使用 mysql,您可以连接您的字段并使用 regexp
,如下所示:
SELECT
*
FROM table1
WHERE CONCAT(',', domain, ',') REGEXP ',domain1,|,domain2,|,domain1,'
【讨论】:
【参考方案3】:为什么不直接使用带有百分比 (%) 通配符的 LIKE 运算符。
Select * From tablename
where DOMAIN Like '%domain1%'
or DOMAIN Like '%domain2%'
or DOMAIN Like '%domain3%'
【讨论】:
以上是关于条目中用逗号分隔的循环子字符串的主要内容,如果未能解决你的问题,请参考以下文章