SQL炼金术等同于SQL“LIKE”政治家

2024-04-28 07:59:23 发布

您现在位置:Python中文网/ 问答频道 /正文

标签列有“苹果香蕉橙”和“草莓香蕉柠檬”等值。我想找到与SQLAlchemy等价的语句

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

我应该传递给Class.query.filter()什么来执行此操作?


Tags: from苹果sqlalchemytagstable标签语句where
3条回答

尝试此代码

output = dbsession.query(<model_class>).filter(<model_calss>.email.ilike('%' + < email > + '%'))

每个列都有like()方法,可以在query.filter()中使用。给定一个搜索字符串,在任意一侧添加一个%字符,以在两个方向上作为子字符串进行搜索。

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

除上述答案外,无论谁寻找解决方案,您也可以尝试使用“match”运算符而不是“like”。我不想有偏见,但这对我在Postgresql中的工作非常有效。

Note.query.filter(Note.message.match("%somestr%")).all()

它继承数据库函数,例如CONTAINSMATCH。但是,它在SQLite中不可用。

有关详细信息,请转到Common Filter Operators

相关问题 更多 >