问题:sqlalchemy如何查询mysql的json格式字段数据?
解决:使用json_contains
方法:
一、mysql原生sql语句
select * from log where data->'$.id' = 142;
select data->'$.id' id,data->'$.name' name from log where data->'$.id' = 142;
或者
select * from log2 where JSON_CONTAINS(data,JSON_OBJECT('id', "142"))
或者
select * from animes where json_contains(weekdays, '3');
# 注意此处3在json字段为数字,但此处必须加引号
二、sqlalchemy的语句
session.query(Story).filter(func.json_contains(Story.section_ids, X) == 1).all()
参考:
https://blog.csdn.net/qq_21187515/article/details/90760337
https://stackoverflow.com/questions/44220206/sqlalchemy-filter-a-json-column-containing-an-array