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

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

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-17 02:10:09504ブラウズ

How Can I Get a Comma-Separated List of Values in MySQL Query Results?

MySQL クエリ結果でのカンマ区切りリストの生成

多くのデータベース ユーザーは、MySQL クエリにカンマ区切りのリストを必要とします。 MySQL はこれを直接サポートしていませんが、GROUP_CONCAT 関数は簡単な解決策を提供します。

問題

出版データと関連サイト名を取得するクエリを想像してください。

<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 つのサイト名のみを含む「site_list」列が返されます。 代わりにカンマ区切りのリストが必要です。

解決策: 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>

これは INNER JOIN を使用して「サイト」テーブルと「パブリケーション」テーブルをリンクし、サイトとパブリケーションの正しい関連付けを保証します。 GROUP_CONCAT(s.name) はサイト名を連結し、GROUP BY p.id, p.name は結果をパブリケーション ID と名前でグループ化し、「site_list」列に目的のカンマ区切りリストを作成します。 これにより、必要な出力が効率的に提供されます。

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

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