Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带SQLAlchemy的PostgreSQL ILIKE查询_Python_Postgresql_Sqlalchemy_Flask_Flask Sqlalchemy - Fatal编程技术网

Python 带SQLAlchemy的PostgreSQL ILIKE查询

Python 带SQLAlchemy的PostgreSQL ILIKE查询,python,postgresql,sqlalchemy,flask,flask-sqlalchemy,Python,Postgresql,Sqlalchemy,Flask,Flask Sqlalchemy,我想运行一个查询,选择所有标题与'%'+[某些短语]+'%'匹配的文章,不区分大小写。也就是说,选择标题包含某些短语的所有行,不区分大小写。从我所做的研究来看,似乎我需要使用Postgres的ILIKE查询来匹配不区分大小写的内容。如何使用SQLAlchemy执行这样的查询 class Post(db.Model): id = db.Column(db.Integer, primary_key = True) title = db.Column(db.String(250))

我想运行一个查询,选择所有标题与
'%'+[某些短语]+'%'
匹配的文章,不区分大小写。也就是说,选择标题包含某些短语的所有行,不区分大小写。从我所做的研究来看,似乎我需要使用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))
我觉得应该行得通

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

对于Python3.6,您可以编写

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

与更严格的
like()
函数相比,这是否会影响性能?这取决于您使用的引擎:PostgreSQL、MySQL或其他。SQLAlchemy只是SQL的包装器。