1. ホーム
  2. python

[解決済み] SQLの "LIKE "ステートメントと同等のSQLAlchemy

2022-03-05 17:19:54

質問

タグ列には、"apple banana orange" や "strawberry banana lemon" のような値があります。SQLAlchemyで次のような等価なステートメントを見つけたいのですが。

SELECT * FROM table WHERE tags LIKE "%banana%";

に何を渡せばいいのでしょうか? Class.query.filter() を実行するには?

どのように解決するのですか?

各カラムには like() メソッドで使用することができます。 query.filter() . 検索文字列が与えられたら % 文字を両脇に置くと、両方向の部分文字列として検索されます。

tag = request.form["tag"]
search = "%{}%".format(tag)
posts = Post.query.filter(Post.tags.like(search)).all()