MySQL の複数の行からカンマ区切りの値を取得する
このシナリオでは、DISH と DISH_HAS_DISHES という 2 つのテーブルがあり、そのうちの 1 つは DISH と DISH_HAS_DISHES です。 -対多の関係。 DISH には料理が含まれますが、DISH_HAS_DISHES には食事と料理の関係が格納されます。目標は、各食事に料理 ID と料理名のカンマ区切りリストが含まれる形式でデータを取得することです。
これを実現するには、MySQL の GROUP_CONCAT 関数を利用できます。この関数を使用すると、複数の行の値を、指定した区切り文字で区切って単一の文字列に連結できます。これを使用して要件に対処する方法は次のとおりです。
SELECT m.meal_Id, GROUP_CONCAT(dish_id) AS dish_ids, GROUP_CONCAT(dish_name) AS dish_names FROM DISH_HAS_DISHES m JOIN DISH d ON (m.dish_id = d.dish_id) GROUP BY meal_Id
このクエリ内:
GROUP BY 句は、結果を Meal_Id ごとにグループ化し、カンマ区切りの値が次のようになります。
このクエリの出力は、次の 3 つの列を持つテーブルになります。
これにより、目的の結果が得られます。ここで、各食事にはそれぞれの料理 ID と名前が単一のカンマ区切り文字列で示されます。
以上がMySQL で各食事のカンマ区切りの料理 ID と名前を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。