SQL 判断以逗号分隔的字符串是否包含某一项

MySQL

MySQL 中有一个方法 FIND_IN_SET(ele, str),str 是一个以逗号分隔的字符串,ele 是一个特定字符串。该方法表示判断 str 中是否包含 ele,
如果包含,则FIND_IN_SET(ele, str) 方法返回值大于 0,表示匹配第几个子串。

1
2
3
4
5
6
7
8
9
10
11
find_in_set('aa','aa,bbb,c,dd,e,f')|
-----------------------------------|
1|

find_in_set('a','aa,bbb,c,dd,e,f')|
----------------------------------|
0|

find_in_set(null,'aa,bbb,c,dd,e,f')|
-----------------------------------|
|

SQL Server

SQL Server 中没有封装好的方法可以实现该功能,可以通过 CHARINDEX(‘,’ + ele + ‘,’ , ‘,’ + str + ‘,’) 来实现,str 是一个以逗号分隔的字符串,ele 是一个特定字符串,该方法表示 ele 在 str 中的位置,位置最小是 1,所以若值大于 0,则表示包含,否则表示不包含。

sql判断以逗号分隔的字符串中是否包含某个字符串

分享到:
Disqus 加载中...

如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理