Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL chọn nơi thuộc tính trường JSON có giá trị

Một số ví dụ về cách truy vấn trường kiểu dữ liệu json:

SELECT * FROM users WHERE JSON_EXTRACT(meta_data, "$.first_name") = 'bob';

SELECT * FROM users WHERE JSON_EXTRACT(meta_data, "$.age") IS NOT NULL;

SELECT * FROM users WHERE JSON_EXTRACT(meta_data, "$.accepted_policy") = true;

Với mysql 5.7.9 +

Bạn cũng có thể thực hiện việc này (phím tắt cho JSON_EXTRACT):

SELECT * FROM users WHERE meta_data->"$.first_name" = 'bob'

Bạn có thể nhận thấy kết quả dữ liệu json của bạn được "trích dẫn". Bạn có thể sử dụng JSON_UNQUOTE hoặc bạn có thể sử dụng cái này, là lối tắt của JSON_EXTRACT &JSON_UNQUOTE:

SELECT meta_data->>"$.first_name" FROM users WHERE meta_data->>"$.first_name" IS NOT NULL

Và để chọn dữ liệu từ bên trong các đối tượng phụ:

SELECT meta_data->>"$.address.tel" FROM users WHERE meta_data->>"$.address.street" = "123 Main St"

tài liệu: https://dev.mysql.com /doc/refman/5.7/en/json-search-functions.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn SQL trong ADOdb và bảo mật trang web chung

  2. Truy vấn tổng hợp có điều kiện với một nhóm theo

  3. Cách lấy ResultSetMetaData tương đương mà không có ResultSet

  4. Mất kết nối với máy chủ MySQL trong khi truy vấn

  5. Làm cách nào để tạo bảng mysql với default_date cột thời gian?