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

ใช้ค่าจาก JSON ในคำสั่ง SELECT ของ MySQL

MySQL 5.7+ รองรับ JSON data type และฟังก์ชัน JSON_EXTRACT() หรืออ็อปเจอเตอร์ ->>

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    -> Data JSON
    -> );

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

mysql> INSERT INTO DemoTable VALUES('{"Name": "John", "CountryName": "US"}');
mysql> INSERT INTO DemoTable VALUES('{"Name": "Chris", "CountryName": "UK"}');

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+----------------------------------------+
| Data                                   |
+----------------------------------------+
| {"Name": "John", "CountryName": "US"}  |
| {"Name": "Chris", "CountryName": "UK"} |
+----------------------------------------+

คำสั่งค้นหาที่ CountryName = US

mysql> SELECT * FROM DemoTable WHERE JSON_EXTRACT(Data, '$.CountryName') LIKE '%US%';

ผลลัพธ์:

+---------------------------------------+
| Data                                  |
+---------------------------------------+
| {"Name": "John", "CountryName": "US"} |
+---------------------------------------+

คำอธิบาย: JSON_EXTRACT(Data, '$.CountryName') ดึงค่า "US" (รวมเครื่องหมายคำพูด) | ใช้ LIKE '%US%' เพื่อจับคู่ | หรือใช้ Data->>'$.CountryName' (unescaped) ได้ใน MySQL 5.7+