ホームページ >データベース >mysql チュートリアル >MySQL クエリ結果の値のカンマ区切りリストを取得するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。