คุณสามารถสร้างรูปแบบ JSON โดยใช้ฟังก์ชัน group_concat() จาก MySQL ไวยากรณ์มีดังนี้ −
SELECT yourColumnName1, GROUP_CONCAT(CONCAT('{anytName:"', yourColumnName, '",anyName:"',yourColunName,'"}')) anyVariableName จาก yourTableNamegroup โดย yourColumnName1;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตารางก่อน แบบสอบถามเพื่อสร้างตารางมีดังนี้ −
mysql> สร้างตาราง JsonFormatDemo -> ( -> UserId int, -> UserName varchar(100), -> UserEmail varchar(100) -> );Query OK, 0 แถวได้รับผลกระทบ (0.99 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามที่จะแทรกบันทึกมีดังนี้ -
mysql> แทรกลงในค่า JsonFormatDemo (101,'John','[email protected]'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.19 วินาที) mysql> แทรกลงในค่า JsonFormatDemo (101, 'Bob', 'John @gmail.com');แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในค่า JsonFormatDemo (102,'Carol','[email protected]'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที) mysql> แทรกลงในค่า JsonFormatDemo (103,'Sam','[email protected]');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −
mysql> เลือก *จาก JsonFormatDemo;
ผลลัพธ์
<ก่อนหน้า>+---------+----------+----------------+| รหัสผู้ใช้ | ชื่อผู้ใช้ | UserEmail |+---------+----------+-----------------+| 101 | จอห์น | [email protected] || 101 | บ๊อบ | [email protected] || 102 | แครอล | [email protected] || 103 | แซม | [email protected] |+---------+----------+-----------------+4 แถวในชุด ( 0.00 วินาที)แบบสอบถามเพื่อสร้างรูปแบบ JSON ด้วยความช่วยเหลือของฟังก์ชัน group_concat() -
mysql> เลือก UserId, -> GROUP_CONCAT(CONCAT('{Name:"', UserName, '", Email:"',UserEmail,'"}')) JsonFormat -> จาก JsonFormatDemo -> กลุ่มตาม UserId;