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])
パラメータの説明:
- DISTINCT:重複する値を取り除くためのオプションのパラメーターです。
- 接続する列または式
- ORDER BY:オプションパラメータ。結合後の結果をソートするために使用されます。
- 昇順(ASC)もしくは降順(DESC):オプションの引数でソート順を指定できます。
- 区切り文字(分かち文字)は省略可能です。デフォルトの区切り文字はカンマです。
テーブル名:students の情報をネイティブな日本語で言い換えてください
+----+--------+-------+
| id | name | class |
+----+--------+-------+
| 1 | Alice | A |
| 2 | Bob | A |
| 3 | Charlie| B |
| 4 | David | C |
+----+--------+-------+
- 名前
SELECT GROUP_CONCAT(name)
FROM students;
結果は以下の通りです:アリス、ボブ、チャーリー、デービッド
- /ネィティヴによる言い換え/
名前 - ネイティブの日本語で言い換えてください、1つのオプションのみが必要です:
SELECT GROUP_CONCAT(name ORDER BY id ASC)
FROM students;
結果がアリス、ボブ、チャーリー、デイビッドとなりました。
- 本質的に日本的な名前
SELECT GROUP_CONCAT(DISTINCT name)
FROM students;
アリス、ボブ、チャーリー、デービッド
- 君の名前はなんですか
SELECT GROUP_CONCAT(name SEPARATOR ';')
FROM students;
結果は、アリス、ボブ、チャーリー、デイビッドです。
注意事項:
- GROUP_CONCAT関数の戻り値の型は文字列で、結合された結果がシステム変数であるgroup_concat_max_lenで定義されている最大長を超えた場合、デフォルトでは切り詰められます。