mysql ก็ support json เพราะว่าเดี๋ยวนี้อะไรๆ ก็แลกเปลี่ยนข้อมูลกันโดยใช้ json ถ้าสามารถ query จาก mysql ให้ result ออกมาเป็น json เลย ก็สะดวกที่จะไม่ต้องใช้ java หรือ beanshell ใน joget แปลงผลลัพธ์ให้ยุ่งยาก แค่มี input ซักตัวก็สามารถนำมันไปใช้ได้เลย
เริ่มจากการที่เขียน query ตามปกติเพื่อเลือกข้อมูลที่ต้องการ เช่น
1 2 3 4 5 | SELECT * FROM snippets.province ORDER BY PROVINCE_NAME ASC; |
จะเห็นว่ามี column PROVINCE_ID, PROVINCE_CODE, PROVINCE_NAME และ GEO_ID ทีนี้จะแปลง ให้เป็นรูปแบบ json array โดยใช้ JSON_OBJECT วิธีการใช้คือ
1 | SELECT JSON_OBJECT( 'name1' , value1, 'name2' , value2, 'name3' , value3); |
คือ
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT JSON_OBJECT( 'PROVINCE_ID' , PROVINCE_ID, 'PROVINCE_CODE' , PROVINCE_CODE, 'PROVINCE_NAME' , PROVINCE_NAME, 'GEO_ID' , GEO_ID) AS json FROM snippets.province ORDER BY PROVINCE_NAME ASC ; |
ค่าค่อยดูเป็น json ขึ้นมาหน่อย แต่มันยังอยู่คนละแถว ไม่เป็นไรมีตัวช่วย
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | SELECT CONCAT( '[' , GROUP_CONCAT(JSON_OBJECT( 'PROVINCE_ID' , PROVINCE_ID, 'PROVINCE_CODE' , PROVINCE_CODE, 'PROVINCE_NAME' , PROVINCE_NAME, 'GEO_ID' , GEO_ID)), ']' ) AS json FROM snippets.province ORDER BY PROVINCE_NAME ASC ; |
แค่นี้ก็ได้ result เป็น json สมใจ อ่านตัวอย่างการใช้ได้ที่ javascript: string to JSON.parse()
About the author