Ich war ein wenig süchtig, als ich versuchte, mit json_contains nach Zeichenfolgen zu suchen.
Muss in " "
eingeschlossen sein. Wenn Sie direkt mit MySQL auswählen, müssen Sie "json_contains (fuga", "piyo") verwenden.
success.py
from sqlalchemy import func
search_str = 'piyo'
db.session.query(Hoge).filter(func.json_contains(Hoge.fuga, f'"{search_str}"'))
fail.py
from sqlalchemy import func
search_str = 'piyo'
db.session.query(Hoge).filter(func.json_contains(Hoge.fuga, search_str))
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (3141, 'Invalid JSON text in argument 2 to function json_contains: "Invalid value." at position 0.')
Recommended Posts