ホームページ >データベース >mysql チュートリアル >Pure MySQL を使用して、列内の値がセミコロンで区切られたテーブルを結合できますか?

Pure MySQL を使用して、列内の値がセミコロンで区切られたテーブルを結合できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 10:27:02907ブラウズ

Can I Join Tables with Semi-colon Separated Values in a Column Using Pure MySQL?

純粋な mysql でこれを解決できますか? (列内の ';' で区切られた値を結合)

質問:

2 つのテーブル、'; を含むリソース列を持つユーザー テーブル t1 があるとします。 '分離されたリソース ID、および ID とデータを含むリソース テーブル t2 がある場合、t1 と t2 を結合して、ユーザーとリソース データを含むテーブルを取得したいとします。

問題:

外部言語を使用して結果を操作することはできず、user_resources テーブルは非正規化されます。

解決策:

1 から 1 までの数値を含む integerseries というテーブルを作成します。ある限界。テーブルを正規化するには、リソース列を配列として扱う COUNT_IN_SET 関数と VALUE_IN_SET 関数を使用します。次に、整数シリーズと結合して、個々のリソース ID を抽出します。

<code class="sql">SELECT user_resource.user, 
       resource.data

FROM user_resource 
     JOIN integerseries AS isequence 
       ON isequence.id <= COUNT_IN_SET(user_resource.resources, ';') 

     JOIN resource 
       ON resource.id = VALUE_IN_SET(user_resource.resources, ';', isequence.id)      
ORDER BY
       user_resource.user,  resource.data</code>

以上がPure MySQL を使用して、列内の値がセミコロンで区切られたテーブルを結合できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。