sql >> データベース >  >> RDS >> Mysql

SQLAlchemyJSON列-包含クエリを実行する方法

    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. MySQLでの続編によるIDの自動インクリメント

    2. Railsでの複数のデータベース接続

    3. データをHerokuにプッシュするときのエラー:タイムゾーンの変位が範囲外です

    4. OracleのDECOMPOSE()関数