Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Sử dụng giá trị từ JSON trong SELECT MySQL với JSON_EXTRACT

MySQL 5.7+ hỗ trợ kiểu dữ liệu JSON và hàm JSON_EXTRACT() (hoặc toán tử ->>) để truy xuất giá trị trong cột JSON.

Tạo bảng cột JSON

mysql> CREATE TABLE DemoTable (Data JSON);
Query OK, 0 rows affected (0.63 sec)
mysql> INSERT INTO DemoTable VALUES('{"Name": "John", "CountryName": "US"}'), ('{"Name": "Chris", "CountryName": "UK"}');
Query OK, 2 rows affected (0.33 sec)

Truy vấn lọc theo CountryName = 'US'

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

Kết quả:

+---------------------------------------+
| Data                                  |
+---------------------------------------+
| {"Name": "John", "CountryName": "US"} |
+---------------------------------------+
1 row in set (0.00 sec)

Cú pháp hiện đại (MySQL 5.7+):

  • JSON_EXTRACT(col, '$.path'): trả về giá trị JSON (có dấu ngoặc kép cho string)
  • col->>'$.path': trả về text thuần (unquoted), tiện cho so sánh
  • Ví dụ: WHERE Data->>'$.CountryName' = 'US'

Index JSON: Tạo VIRTUAL COLUMN trích xuất giá trị, sau đó index cột ảo đó.