我怎么能确定两个字符串在sql中有交集?

时间:2013-03-06 00:46:36

标签: mysql sql

用','分割两个字符串,如下所示:

a:'1,2,3,4,5'
B: '6,2,1,3,9'

我想确定这些字符串是否有交集。

有没有什么功能可以在mysql中处理它?<​​br/>

THX!

1 个答案:

答案 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个值。