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,使用反向包含(不在)子列值列表中进行选择