2013-03-06 32 views
0

兩串分裂與 '' 是這樣的:
我怎樣才能確定兩個字符串在sql中有交集?

一個: '1,2,3,4,5'
B: '6,2,1,3,9'

我想,以確保這些字符串,如果有交集..

有什麼功能在MySQL中可處理呢?

thx!

+0

[This](http://www.1keydata.com/sql/sql-intersect.html)可能對您有所幫助。 – 2013-03-06 00:49:38

+1

不幸的是,這是當你無法規範化你的數據庫時你遇到的那種問題。 – dasblinkenlight 2013-03-06 00:51:22

+0

@dasblinkenlight是的!就是這樣! – 2013-03-06 01:11:50

回答

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個值。

+0

但這些字符串在運行時決定.mybe'1,2,3''1,2,3,4,5,6'或'7,4,2,6,7,8''0,2,4 ,9' – 2013-03-06 04:18:38

相關問題