ホームページ >データベース >mysql チュートリアル >MySQL クエリ結果からカンマ区切りのリストを生成するにはどうすればよいですか?

MySQL クエリ結果からカンマ区切りのリストを生成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-17 01:57:08293ブラウズ

How Can I Generate Comma-Separated Lists from MySQL Query Results?

MySQL データからのカンマ区切りリストの生成

カンマ区切りリストなどの特定の形式でデータを抽出するのは一般的なタスクです。 パブリケーションの詳細と、関連するサイト名のカンマ区切りリストが必要だとします。サブクエリを使用した単純なアプローチは次のようになります:

<code class="language-sql">SELECT p.id, p.name, 
       (SELECT name 
          FROM sites s 
         WHERE s.id = p.site_id) AS site_list
  FROM publications p</code>

ただし、これではカンマ区切りのリストではなく、行ごとに 1 つのサイト名が生成されます。

解決策: GROUP_CONCAT

目的のカンマ区切りリストを作成する鍵となるのは、GROUP_CONCAT 関数です。この関数は、複数の値をカンマ (またはカスタム区切り文字) で区切って単一の文字列に連結します。 改良されたクエリは次のとおりです:

<code class="language-sql">SELECT p.id, p.name, GROUP_CONCAT(s.name) AS site_list
FROM sites s
INNER JOIN publications p ON (s.id = p.site_id)
GROUP BY p.id, p.name;</code>

この改訂されたクエリでは、GROUP_CONCAT(s.name) を使用してサイト名を結合します。 INNER JOINpublications テーブルと sites テーブルを効率的にリンクし、GROUP BY p.id, p.name 関数が各パブリケーションのサイト名を正しく集計することを保証します。GROUP_CONCAT

以上がMySQL クエリ結果からカンマ区切りのリストを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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