如何在SQLAlchemy中按字符串搜索以使用mysql json_contains


尝试使用

json_contains通过字符串搜索时,我有点上瘾。

成功范例

必须放在

""中。实际上,直接在mysql中选择时需要使用json_contains(fuga, '"piyo"')

success.py

1
2
3
4
from sqlalchemy import func

search_str = 'piyo'
db.session.query(Hoge).filter(func.json_contains(Hoge.fuga, f'"{search_str}"'))

失败代码示例

fail.py

1
2
3
4
from sqlalchemy import func

search_str = 'piyo'
db.session.query(Hoge).filter(func.json_contains(Hoge.fuga, search_str))

错误消息

1
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (3141, 'Invalid JSON text in argument 2 to function json_contains: "Invalid value." at position 0.')