純粋な 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 サイトの他の関連記事を参照してください。