MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでgroup-concatを使用してJSON形式を作成するにはどうすればよいですか?


MySQLのgroup_concat()関数を使用してJSON形式を作成できます。構文は次のとおりです-

SELECT yourColumnName1,
   GROUP_CONCAT(CONCAT('{anytName:"', yourColumnName, '",
anyName:"',yourColunName,'"}')) anyVariableName
   from yourTableName
group by yourColumnName1;

上記の構文を理解するために、最初にテーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-

mysql> create table JsonFormatDemo
   -> (
   -> UserId int,
   -> UserName varchar(100),
   -> UserEmail varchar(100)
   -> );
Query OK, 0 rows affected (0.99 sec)

挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。レコードを挿入するためのクエリは次のとおりです-

mysql> insert into JsonFormatDemo values(101,'John','John@gmail.com');
Query OK, 1 row affected (0.19 sec)

mysql> insert into JsonFormatDemo values(101,'Bob','John@gmail.com');
Query OK, 1 row affected (0.18 sec)

mysql> insert into JsonFormatDemo values(102,'Carol','Carol@gmail.com');
Query OK, 1 row affected (0.12 sec)

mysql> insert into JsonFormatDemo values(103,'Sam','Sam@gmail.com');
Query OK, 1 row affected (0.15 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from JsonFormatDemo;

出力

+--------+----------+-----------------+
| UserId | UserName | UserEmail       |
+--------+----------+-----------------+
|    101 | John     | John@gmail.com  |
|    101 | Bob      | John@gmail.com  |
|    102 | Carol    | Carol@gmail.com |
|    103 | Sam      | Sam@gmail.com   |
+--------+----------+-----------------+
4 rows in set (0.00 sec)

group_concat()関数を使用してJSON形式を作成するためのクエリ-

mysql> select UserId,
   -> GROUP_CONCAT(CONCAT('{Name:"', UserName, '", Email:"',UserEmail,'"}')) JsonFormat
   -> from JsonFormatDemo
   -> group by UserId;

出力

+--------+----------------------------------------------------------------------------+
| UserId | JsonFormat                                                                 |
+--------+----------------------------------------------------------------------------+
|    101 | {Name:"John", Email:"John@gmail.com"},{Name:"Bob", Email:"John@gmail.com"} |
|    102 | {Name:"Carol", Email:"Carol@gmail.com"}                                    |
|    103 | {Name:"Sam", Email:"Sam@gmail.com"}                                        |
+--------+----------------------------------------------------------------------------+
3 rows in set (0.00 sec)

  1. MySQLビューを作成する方法は?

    MySQLビューを作成するには、次の構文のようにCREATEVIEWを使用します- create view yourViewName as select * from yourTableName;として作成します。 まずテーブルを作成しましょう- mysql> create table DemoTable1802      (      StudentId int,      StudentName varchar(20)      ); Query OK, 0 ro

  2. MySQLクエリを使用してテーブル列の日付の形式を変更するにはどうすればよいですか?

    日付の形式を変更するには、DATE_FORMAT()関数を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1906    (    DueTime datetime    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1906 values(now()); Query OK, 1 row affected (0.