我在我的Postgresql数据库中存储了Bags的类型:[“ Clutch Bags”,“ Shoulder Bags”,“ Tote Bags”].我正在编写一个基于python flask的API端点,用户可以使用该端点提供搜索词,例如“ Red Shoulder Bag”或“ Grey Clutch Bag”.现在,我想使用sqlAlchemy编写查询,以便对于这些给定的搜索词,我能够在Bags表中查找该值.我写了这个,但是仅当用户输入的搜索字符串为复数时才有效,如果用户输入“灰色手拿包”则不起作用
categories = db.session.query(Bags.id) \
.filter(literal(search_string).ilike(func.concat('%', Bags.type, '%')))\
.all()
过滤时,如何从数据库中的袋类型中删除结尾的“ s”?我希望能够这样查询:
type_in_db = "Clutch Bags"
search_string = "Grey Clutch Bag"
if type_in_db.rstrip('s') in search_string:
return type_in_db
解决方法:
我不是非常熟练的python开发人员,但为什么不简单:
categories = db.session.query(Bags.id) \
.filter(Bags.type.like('%'+search_string+'%'))\
.all()