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

数据库 waitig 646℃ 百度已收录 0评论

sql语句中,以逗号分隔的字符串中是否包含某个特定字符串,类似于判断一个数组中是否包含某一个元素,例如:判断 ’a,b,c,d,e,f,g‘ 中是否包含 ‘a’,sql语句如何实现?

mysql:mysql中有一个方法 FIND_IN_SET(ele, str),str是一个以逗号分隔的字符串,ele是一个特定字符串,该方法表示判断str中是否包含ele。

sqlserver:sqlserver中没有封装好的方法可以实现该功能,可以通过 CHARINDEX(‘,’+ ele +’,’  ,  ‘,’+str+’,’) 来实现,str是一个以逗号分隔的字符串,ele是一个特定字符串,该方法表示判断str中是否包含ele,若值大于0,则表示包含,否则不包含。这里通常会有一个误区:通过使用%模糊匹配来判断,举个该方法不成立的例子,若使用模糊匹配判断
‘b,ab,aba,bc,c’ 中是否包含字符串 ‘a’,得到的结果是包含,但实际答案是否定的。


本文由【waitig】发表在等英博客
本文固定链接:sql判断以逗号分隔的字符串中是否包含某个字符串
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)