次のように ',' で分割された 2 つの文字列:
a:'1,2,3,4,5'
b:'6,2,1,3,9'
これらの文字列に交差があるかどうかを確認したい..
mysqlで処理できる関数はありますか?
どうも!
質問するだけで、データ構造が間違っていることが明らかになることを強調しなければなりません。ペアごとにテーブルが必要です。次のような行があります。
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)
は、文字列のn番目の値を返すMySQL式です。