Bạn có thể tạo định dạng JSON bằng cách sử dụng hàm group_concat () từ MySQL. Cú pháp như sau -
SELECT yourColumnName1, GROUP_CONCAT(CONCAT('{anytName:"', yourColumnName, '", anyName:"',yourColunName,'"}')) anyVariableName from yourTableName group by yourColumnName1;
Để hiểu cú pháp trên, trước tiên chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -
mysql> create table JsonFormatDemo -> ( -> UserId int, -> UserName varchar(100), -> UserEmail varchar(100) -> ); Query OK, 0 rows affected (0.99 sec)
Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn để chèn bản ghi như sau -
mysql> insert into JsonFormatDemo values(101,'John','[email protected]'); Query OK, 1 row affected (0.19 sec) mysql> insert into JsonFormatDemo values(101,'Bob','[email protected]'); Query OK, 1 row affected (0.18 sec) mysql> insert into JsonFormatDemo values(102,'Carol','[email protected]'); Query OK, 1 row affected (0.12 sec) mysql> insert into JsonFormatDemo values(103,'Sam','[email protected]'); Query OK, 1 row affected (0.15 sec)
Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -
mysql> select *from JsonFormatDemo;
Đầu ra
+--------+----------+-----------------+ | UserId | UserName | UserEmail | +--------+----------+-----------------+ | 101 | John | [email protected] | | 101 | Bob | [email protected] | | 102 | Carol | [email protected] | | 103 | Sam | [email protected] | +--------+----------+-----------------+ 4 rows in set (0.00 sec)
Truy vấn để tạo định dạng JSON với sự trợ giúp của hàm group_concat () -
mysql> select UserId, -> GROUP_CONCAT(CONCAT('{Name:"', UserName, '", Email:"',UserEmail,'"}')) JsonFormat -> from JsonFormatDemo -> group by UserId;
Đầu ra
+--------+----------------------------------------------------------------------------+ | UserId | JsonFormat | +--------+----------------------------------------------------------------------------+ | 101 | {Name:"John", Email:"[email protected]"},{Name:"Bob", Email:"[email protected]"} | | 102 | {Name:"Carol", Email:"[email protected]"} | | 103 | {Name:"Sam", Email:"[email protected]"} | +--------+----------------------------------------------------------------------------+ 3 rows in set (0.00 sec)