如何使用 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)
使用 insert 命令向表中插入一些記錄。插入記錄的查詢如下——
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)
廣告