sqlalchemy中sql LIKE的反向版本[重复]

Posted

技术标签:

【中文标题】sqlalchemy中sql LIKE的反向版本[重复]【英文标题】:Reverse version of sql LIKE in sqlalchemy [duplicate] 【发布时间】:2013-03-29 21:42:50 【问题描述】:

“类似的反向版本”我的意思是完全像this question。问题是如何在 sqlalchemy 中进行这样的查询?

我发现要在 sqlalchemy 中进行“SELECT LIKE”查询,我应该进行类似的操作

session.query(Book).filter(Book.title.like("%"+my_title+"%"))

因为like是column的方法,所以不知道怎么用like的方法去问"%" + Book.title + "%"

【问题讨论】:

@Spudley 这个问题是关于 NOT LIKE 运算符,这个问题是关于反转列和模式之间的关系。 所以如果Book.title 包含“blah”,您希望在my_title 包含“Something with blah in it”时查询成功,对吧? @Spudley:这不是您的问题的重复。 【参考方案1】:

感谢this 的问题,我知道该怎么做:)

session.query(Book).
    filter(bindparam('book_title', book.title).contains(Book.title)).first()

【讨论】:

literal(book.title) 是该 bindparam() 的快捷方式 谢谢!我正在寻找这个。 bindparam() 和 literal() 方法都有效。您能否解释一下使这种方法起作用的幕后情况?谢谢!

以上是关于sqlalchemy中sql LIKE的反向版本[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 sqlalchemy 中执行 LIKE 查询?

sqlalchemy,使用反向包含(不在)子列值列表中进行选择

SQLAlchemy query with OR/AND/like common filters

C# 版本的 SQL LIKE

PostgreSQL 反向 LIKE

Python 之 sqlalchemy 外键正反向关联查询