用','分割两个字符串,如下所示:
a:'1,2,3,4,5'
B: '6,2,1,3,9'
我想确定这些字符串是否有交集。
有没有什么功能可以在mysql中处理它?<br/>
THX!
答案 0 :(得分:0)
我必须强调,只要问问题就可以清楚地表明您的数据结构是错误的。你应该为每对配备一张桌子。它会有如下行:
a 1
a 2
. . .
b 6
b 2
etc.
使用标准SQL可以轻松解决这个问题。
也就是说,如果你因某种原因被迫这样做,那么MySQL有一些可以提供帮助的功能。你可以这样做:
where find_in_set(substring_index(substring_index(a, ',', 1), ',', -1), a) > 0 or
find_in_set(substring_index(substring_index(a, ',', 2), ',', -1), a) > 0 or
find_in_set(substring_index(substring_index(a, ',', 3), ',', -1), a) > 0 or
find_in_set(substring_index(substring_index(a, ',', 4), ',', -1), a) > 0 or
find_in_set(substring_index(substring_index(a, ',', 5), ',', -1), a) > 0 or
. . .
表达式substring_index(substring_index(a, ',', 5), ',', -1)
是一个MySQL表达式,它返回字符串中的第n个值。