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

Cột SQLAlchemy JSON - cách thực hiện truy vấn chứa

Sử dụng JSON_CONTAINS(json_doc, val[, path]) :

from sqlalchemy import func

# JSON_CONTAINS returns 0 or 1, not found or found. Not sure if MySQL
# likes integer values in WHERE, added == 1 just to be safe
session.query(Story).filter(func.json_contains(Story.section_ids, X) == 1).all()

Khi bạn đang tìm kiếm một mảng ở cấp cao nhất, bạn không cần phải đưa ra đường dẫn . Ngoài ra, bắt đầu từ 8.0.17, bạn có thể sử dụng value MEMBER OF(json_array) , nhưng theo ý kiến ​​của tôi, việc sử dụng nó trong SQLAlchemy kém tiện dụng hơn một chút:

from sqlalchemy import literal

# self_group forces generation of parenthesis that the syntax requires
session.query(Story).filter(literal(X).bool_op('MEMBER OF')(Story.section_ids.self_group())).all()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hai giá trị được tạo ra trong học thuyết

  2. Làm thế nào để tìm tất cả các mối quan hệ giữa tất cả các bảng mysql?

  3. CHAR () hoặc VARCHAR () làm khóa chính trong bảng ISAM MySQL?

  4. Đang tải các tệp .sql từ bên trong PHP

  5. Nhập MySQL 5.7.12 không thể tạo giá trị JSON từ một chuỗi có CHARACTER SET 'nhị phân'