Mysql
 sql >> база данни >  >> RDS >> Mysql

SQLAlchemy JSON колона - как да изпълните заявка за съдържание

Използвайте 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()

Тъй като търсите масив на най-горното ниво, не е необходимо да давате път . Алтернативно, започвайки от 8.0.17, можете да използвате value MEMBER OF(json_array) , но използването му в SQLAlchemy е малко по-малко ергономично според мен:

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. има ли начин да изброите всички запазени думи в mysql с помощта на помощната програма на командния ред mysql

  2. Празни интервали в имената на колони с MySQL

  3. MySQL изгледи

  4. Разликите между INT и UUID в MySQL

  5. Предупреждение:mysql_num_rows():предоставеният аргумент не е валиден ресурс за MySQL резултат