基本的に、問題はこれからどのように取得するかです。
foo_id foo_name 1A 1B 2C
これに:
foo_id foo_name 1AB 2C
基本的に、問題はこれからどのように取得するかです。
foo_id foo_name 1A 1B 2C
これに:
foo_id foo_name 1AB 2C
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 を返します。
SELECT id, GROUP_CONCAT( string SEPARATOR ' ') FROM table GROUP BY id
詳細はこちら。
上記のリンクからGROUP_CONCAT
: この関数は、グループから連結された非 NULL 値を含む文字列結果を返します。NULL 以外の値がない場合は、NULL を返します。
SELECT id, GROUP_CONCAT(CAST(name as CHAR)) FROM table GROUP BY id
コンマ区切りの文字列が返されます
結果は、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