web-dev-qa-db-ja.com

SQLAlchemyを使用したPostgreSQLILIKEクエリ

'%' + [some_phrase] + '%'に一致するタイトルを持つ、大文字と小文字を区別しないすべての投稿を選択するクエリを実行したいと思います。つまり、タイトルがcontainあるフレーズで、大文字と小文字が区別されないすべての行を選択します。私が行った調査によると、大文字と小文字を区別しないようにするには、PostgresのILIKEクエリを使用する必要があるようです。 SQLAlchemyでこのようなクエリを実行するにはどうすればよいですか?

class Post(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    title = db.Column(db.String(250))
    content = db.Column(db.String(5000))
16
sundance

私はそれがうまくいくはずだと思います

Post.query.filter(Post.title.ilike('%some_phrase%'))

http://docs.sqlalchemy.org/en/latest/orm/internals.html?highlight=ilike#sqlalchemy.orm.attributes.QueryableAttribute.ilike

35
user1454592

python 3.6 '%' + some_phrase + '%'の代わりに

Post.query.filter(Post.title.ilike(f'%{some_phrase}%'))
1
Anatoly E