SQLAlchemyはPythonのORMモジュールで、SQL操作をクラスとして扱うことができます。今回は、SQLAlchemyを使ってLIKEクエリを実行する方法について説明します。
SQLAlchemyのLIKEメソッド
SQLAlchemyの各カラムにはlike()
メソッドがあり、これをquery.filter()
で使用することができます。検索文字列が与えられた場合、その両側に%
文字を追加して、両方向の部分文字列として検索します。
tag = request.form["tag"]
search = "%{}%".format(tag)
posts = Post.query.filter(Post.tags.like(search)).all()
上記のコードでは、フォームから取得したtag
を用いて、Post
テーブルのtags
カラムを検索しています。
注意点
SQLAlchemyを使用する際には、生成されるSQLをチェックすることが重要です。意図せずに重いSQLを実行してしまう可能性があるため、注意が必要です。
まとめ
SQLAlchemyを使用すると、Pythonのコード内で直感的にSQLクエリを書くことができます。特に、like()
メソッドを使用すると、LIKEクエリを簡単に実行することができます。ただし、生成されるSQLを常にチェックすることを忘れないようにしましょう。.