Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การจัดเก็บข้อมูล JSON ในตาราง MySQL

การสร้างตารางด้วยชนิดข้อมูล JSON

MySQL 5.7+ รองรับชนิดข้อมูล JSON แบบเนทีฟ:

mysql> CREATE TABLE DemoTable1832 (
    ListOfNames JSON
);

เพิ่มข้อมูล JSON

mysql> INSERT INTO DemoTable1832(ListOfNames) VALUES('["Sam", "Mike", "Carol"]');
mysql> INSERT INTO DemoTable1832(ListOfNames) VALUES('["David", "Bob"]');
mysql> INSERT INTO DemoTable1832(ListOfNames) VALUES('["Adam", "John", "Sam"]');

แสดงข้อมูล

mysql> SELECT * FROM DemoTable1832;

ผลลัพธ์:

+--------------------------+
| ListOfNames              |
+--------------------------+
| ["Sam", "Mike", "Carol"] |
| ["David", "Bob"]         |
| ["Adam", "John", "Sam"]  |
+--------------------------+

ข้อดีของชนิดข้อมูล JSON

  • ตรวจสอบความถูกต้องของ JSON อัตโนมัติ (Validation)
  • ฟังก์ชันสำหรับจัดการ JSON: JSON_EXTRACT, JSON_CONTAINS, JSON_ARRAY_APPEND ฯลฯ
  • ดัชนีเสมือน (Virtual Columns) สำหรับค้นหาเร็วขึ้น
  • จัดเก็บในรูปแบบไบนารีที่มีประสิทธิภาพ

ตัวอย่างการดึงข้อมูล

-- ดึงสมาชิกคนแรกของอาร์เรย์
SELECT JSON_EXTRACT(ListOfNames, '$[0]') FROM DemoTable1832;

-- ค้นหาแถวที่มี "Sam"
SELECT * FROM DemoTable1832 WHERE JSON_CONTAINS(ListOfNames, '"Sam"');