【发布时间】:2015-10-14 09:25:39
【问题描述】:
我在这里遇到一个非常具体的问题: 我需要在 SQLAlchemy 中进行 LIKE 搜索,但是关键字的数量是不同的。 这是一个关键字的代码:
search_query = request.form["searchinput"]
if selectet_wg and not lagernd:
query = db_session.query(
Artikel.Artnr,
Artikel.Benennung,
Artikel.Bestand,
Artikel.Vkpreisbr1
).filter(
and_(
Artikel.Benennung.like("%"+search_query+"%"),
Artikel.Wg == selectet_wg
)
).order_by(Artikel.Vkpreisbr1.asc())
“searchinput” 看起来像这样:“property1,property2,property3”,但也可以是 1,2,5 或更多的属性。 我想将搜索输入拆分为“,”(是的,我知道该怎么做:))并为每个属性插入另一个 LIKE 搜索。 所以对于上面的例子,搜索应该是这样的:
search_query = request.form["searchinput"]
if selectet_wg and not lagernd:
query = db_session.query(
Artikel.Artnr,
Artikel.Benennung,
Artikel.Bestand,
Artikel.Vkpreisbr1
).filter(
and_(
Artikel.Benennung.like("%"+search_query+"%"), #property1
Artikel.Benennung.like("%"+search_query+"%"), #property2
Artikel.Benennung.like("%"+search_query+"%"), #property3
Artikel.Wg == selectet_wg
)
).order_by(Artikel.Vkpreisbr1.asc())
我不认为仅仅为属性数量做一个 if 语句并记下查询几次是一个聪明的主意...... 我正在使用最新版本的 sqlalchemy 和 python 3.4
【问题讨论】:
标签: python python-3.x flask sqlalchemy