mysql GROUP_CONCAT()で、複数行のデータを1行のデータに結合します

フィールドは複数のデータに対応する場合があります。mysqlを使用して、複数のデータ行を1つのデータ行にマージします。

次に例を示します。一般的なSQLステートメントによると、アクティビティID(activeId)は複数のモジュール名(modelName)に対応します。

1 SELECT am.activeId、m.modelName 
2 FROM activemodel am 
3 JOIN model m 
4 ON am.modelId = m.modelId 
5 ORDER BY am.activeId

クエリリストを図1に示します。 

      図1

変更されたSQLステートメントは、クエリ後に図2に示されています。

1 SELECT am.activeId、GROUP_CONCAT(m.modelName SEPARATOR '、')modelName 
2 FROM activemodel am 
3 JOIN model m 
4 ON am.modelId = m.modelId 
5 WHERE m.valid = 1 
6 GROUP BY am.activeId

注意:

1. GROUP_CONCAT()の値は、マージするデータのフィールド名です。

 SEPARATOR関数は、マージするデータを分離するために使用されます。

 ''は、分離するために使用する記号です。

2. GROUP BYステートメントはグループ管理に使用する必要があります。そうしないと、図3に示すように、すべてのデータが1つのレコードにマージされます。

            図2

 

                    画像3

おすすめ

転載: blog.csdn.net/zhaofuqiangmycomm/article/details/113592373