使用正则表达式SQL Server搜索字符串

时间:2016-02-04 01:48:58

标签: sql sql-server regex

我想使用的正则表达式是:^(?=.*[,])(,?)ABC(,?)$

我想要的是:

^                // start
(?=.*[,])        // contains at least one comma (,)
(,?)ABC(,?)      // The comma is either in the beginning or in the end of the string "ABC"
$                // end

当然ABC应该是基于我的搜索字词的变量。

因此,如果ABC = 'abc'然后",abc""abc,"",abc,"匹配但不匹配"abc""abcd"

也欢迎更好的方法。

记录中的值看起来像"abc,def,ghi,ab,cde...",我需要查明它是否包含我的元素(即'abc')。我无法改变数据结构。我们可以假设在任何情况下记录都不会只包含一个子值,所以假设值中总是有一个逗号是正确的。

1 个答案:

答案 0 :(得分:2)

如果你想知道逗号分隔的字符串是否包含abc,那么我认为like是任何数据库中最简单的方法:

where ',' + col + ',' like '%,abc,%'