MySQLのgroup_concat関数の構文と使用方法を教えてください。

MySQLのGROUP_CONCAT関数は、複数の行のデータを指定した順につなげて一つの文字列を作ります。構文は次の通りです。

GROUP_CONCAT([DISTINCT] expr [,expr ...]
            [ORDER BY {unsigned_integer | col_name | expr}
                [ASC | DESC] [,col_name ...]]
            [SEPARATOR str_val])

パラメータの説明:

  1. DISTINCT:重複する値を取り除くためのオプションのパラメーターです。
  2. 接続する列または式
  3. ORDER BY:オプションパラメータ。結合後の結果をソートするために使用されます。
  4. 昇順(ASC)もしくは降順(DESC):オプションの引数でソート順を指定できます。
  5. 区切り文字(分かち文字)は省略可能です。デフォルトの区切り文字はカンマです。

テーブル名:students の情報をネイティブな日本語で言い換えてください

+----+--------+-------+
| id | name   | class |
+----+--------+-------+
|  1 | Alice  | A     |
|  2 | Bob    | A     |
|  3 | Charlie| B     |
|  4 | David  | C     |
+----+--------+-------+
  1. 名前
SELECT GROUP_CONCAT(name)
FROM students;

結果は以下の通りです:アリス、ボブ、チャーリー、デービッド

  1. /ネィティヴによる言い換え/
    名前
  2. ネイティブの日本語で言い換えてください、1つのオプションのみが必要です:
SELECT GROUP_CONCAT(name ORDER BY id ASC)
FROM students;

結果がアリス、ボブ、チャーリー、デイビッドとなりました。

  1. 本質的に日本的な名前
SELECT GROUP_CONCAT(DISTINCT name)
FROM students;

アリス、ボブ、チャーリー、デービッド

  1. 君の名前はなんですか
SELECT GROUP_CONCAT(name SEPARATOR ';')
FROM students;

結果は、アリス、ボブ、チャーリー、デイビッドです。

注意事項:

  1. GROUP_CONCAT関数の戻り値の型は文字列で、結合された結果がシステム変数であるgroup_concat_max_lenで定義されている最大長を超えた場合、デフォルトでは切り詰められます。
bannerAds