SQLAlchemy中模糊查询,如何like多个关键字

比如需要找出u_name中既有“三”又有“猫”的记录:
SQL原生语句如下:

SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'

请问这个如何在 SQLAlchemy 中实现呢

阅读 42.5k
2 个回答
from sqlalchemy import and_


words = ['%三%', '%猫%']
rule = and_(*[table.u_name.like(w) for w in words])
table.query.filter(rule)
DBSession().query(user).filter(user.u_name.like('%三%')).filter(user.u_name.like('%猫%'))

或者可以用 and_()

DBSession().query(user).filter(and_(user.u_name.like('%三%'), user.u_name.like('%猫%')))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏