406

基本的に、問題はこれからどのように取得するかです。

foo_id foo_name
1A
1B
2C

これに:

foo_id foo_name
1AB
2C
4

6 に答える 6

612
SELECT id, GROUP_CONCAT(name SEPARATOR ' ') FROM table GROUP BY id;

https://dev.mysql.com/doc/refman/8.0/en/aggregate-functions.html#function_group-concat

上記のリンクからGROUP_CONCAT: この関数は、グループから連結された非 NULL 値を含む文字列結果を返します。NULL 以外の値がない場合は、NULL を返します。

于 2008-09-29T17:38:37.057 に答える
168
SELECT id, GROUP_CONCAT( string SEPARATOR ' ') FROM table GROUP BY id

詳細はこちら

上記のリンクからGROUP_CONCAT: この関数は、グループから連結された非 NULL 値を含む文字列結果を返します。NULL 以外の値がない場合は、NULL を返します。

于 2008-09-29T17:39:59.440 に答える
19
SELECT id, GROUP_CONCAT(CAST(name as CHAR)) FROM table GROUP BY id

コンマ区切りの文字列が返されます

于 2008-09-29T17:41:09.123 に答える
17

結果は、group_concat_max_len システム変数によって指定される最大長に切り捨てられます。デフォルト値は 1024 文字なので、最初に次のようにします。

SET group_concat_max_len=100000000;

そして、例えば:

SELECT pub_id,GROUP_CONCAT(cate_id SEPARATOR ' ') FROM book_mast GROUP BY pub_id
于 2010-09-24T09:53:35.003 に答える