mysql:複数の行を単一のコンマ分離行に変換する
MySQLデータベース内で、特定の列に複数の列に凝縮したい状況に遭遇する可能性があります。これは、次の例のシナリオで示されているように、Group_concat関数を利用することで実現できます。料理のテーブルには次の構造があります。 dish_id dish_name 1 dish_1 2 dish_2 3 dish_3 4 dish_4
dish_has_dishesテーブルは次のようになります: dish_has_dishes: Meal_id dish_id 1 2 1 3 1 4
目的:
DISH: dish_id dish_name 1 dish_1 2 dish_2 3 dish_3 4 dish_4
は、各食事に対応する行がある形式にデータを変換し、料理IDと名前をコンマ分離値としてリストすることです。目的の出力は、
DISH_HAS_DISHES: meal_id dish_id 1 2 1 3 1 4
solution:
を実現するために、いくつかの簡単な結合操作:
DISH: dish_id dish_name 1 dish_1 2 dish_2 3 dish_3 4 dish_4を選択します。 group_concat(dish_id)as dish_ids、 group_concat(dish_name)as dish_names dish_has_dishesm from m in dish d on(m.dish_id = d.dish_id) このクエリでは、meal_id
by meal_id
は、dish_has_dishesテーブル(m)にdish_id列の皿テーブル(d)に参加することから始めます。列。この手法は、表形式データを操作し、複数の行にわたって情報を統合する場合に特に役立ちます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3