MySQL の GROUP_CONCAT 関数を使用して、複数行のデータを 1 行にマージします。

WBOY
リリース: 2023-07-25 19:54:25
オリジナル
3373 人が閲覧しました

MySQL の GROUP_CONCAT 関数を使用して、複数行のデータを 1 行にマージする

実際のデータ処理プロセスでは、後続の分析と処理を容易にするために、複数行のデータを 1 行にマージする必要がある場合があります。 MySQL の GROUP_CONCAT 関数は、この機能の実現に役立ちます。この記事では、GROUP_CONCAT 関数の使用法を紹介し、いくつかの一般的なシナリオでのコード例を示します。

GROUP_CONCAT 関数は、MySQL で文字列をマージするために使用される集計関数であり、指定された区切り文字に従ってデータの列を文字列に連結できます。具体的な構文は次のとおりです。

GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val])
ログイン後にコピー

ここで、DISTINCT はマージされるデータの重複排除を表し、expr はマージされる列名または式を表し、ORDER BY はマージされたデータの順序を制御するために使用されます。 SEPARATOR はマージを指定するために使用され、次の文字列の区切り文字です。

次に、いくつかの一般的なシナリオで GROUP_CONCAT 関数を使用する方法のコード例を示します。

  1. 同じ列内のデータをマージする

次のようなものがあるとします。学生テーブル。学生の名前と趣味が含まれます。各生徒の趣味を 1 つの行にまとめて分析しやすくしたいと考えています。これは、次のコードを使用して実現できます。

SELECT student_name, GROUP_CONCAT(hobby) AS hobbies FROM student GROUP BY student_name;
ログイン後にコピー

上記のコードは、各生徒の名前と趣味を出力します。趣味はデフォルトのカンマ区切り文字を使用して接続されます。

  1. 複数の列のデータをマージする

複数の列のデータをマージする必要がある場合があります。たとえば、趣味に加えて、学生テーブルには評価リストもあります。各生徒の「いいね!」と評価を 1 つの文字列に結合したいと考えています。これは、次のコードを使用して実現できます。

SELECT student_name, GROUP_CONCAT(CONCAT(hobby, ':', score)) AS hobby_score FROM student GROUP BY student_name;
ログイン後にコピー

上記のコードは、各生徒の名前、趣味、評価をコロンで区切って出力します。

  1. 指定した順序でデータを結合する

指定した順序でデータを結合する必要がある場合があります。たとえば、注文番号と製品名を含む注文テーブルがあります。注文番号の昇順に商品名を結合したい。

SELECT order_id, GROUP_CONCAT(product_name ORDER BY order_id ASC) AS products FROM orders GROUP BY order_id;
ログイン後にコピー

上記のコードは、各注文の注文番号と対応する製品名を出力します。製品名は注文番号の昇順に並べられています。

上記は、いくつかの一般的なシナリオで MySQL の GROUP_CONCAT 関数を使用する方法のコード例です。 GROUP_CONCAT 関数を使用すると、複数のデータ行を 1 つの行に簡単に結合でき、データ処理の効率が向上します。この記事がデータベース運用のお役に立てれば幸いです。

以上がMySQL の GROUP_CONCAT 関数を使用して、複数行のデータを 1 行にマージします。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!