Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kolom SQLAlchemy JSON - cara melakukan kueri berisi

Gunakan 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()

Saat Anda mencari larik di tingkat atas, Anda tidak perlu memberikan jalur . Atau mulai dari 8.0.17 Anda dapat menggunakan value MEMBER OF(json_array) , tetapi menggunakannya di SQLAlchemy sedikit kurang ergonomis menurut saya:

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. Indeks MySQL memperlambat permintaan

  2. Tabel ditandai sebagai rusak dan harus diperbaiki

  3. bagaimana cara menyimpan tipe tanggal Java ke tipe tanggal mysql?

  4. Dalam kueri MySQL, mengapa menggunakan join alih-alih di mana?

  5. Perlu kueri MySQL untuk memilih dari tabel yang menyimpan pasangan nilai kunci