You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sqlalchemy中如何实现列表元素的批量like模糊匹配查询?

实现多前缀模糊匹配的解决方案

你可以通过SQLAlchemy提供的or_逻辑函数拼接多个前缀匹配条件,替换原有的in_精确匹配逻辑即可,具体实现如下:


完整代码示例

# 首先导入or_逻辑函数
from sqlalchemy import or_

filter_value = [a, b, c]
# 批量生成所有前缀模糊匹配条件
like_conditions = [mytable.column.like(f"{item}%") for item in filter_value]
# 用or_拼接所有条件后执行查询
result = session.query(mytable).filter(or_(*like_conditions)).all()

生成的SQL逻辑和你需要的原生SQL效果完全一致:

select * from mytable where column like 'a%' or column like 'b%' or column like 'c%'

注意事项

  • 若担心f-string写法存在SQL注入风险,可替换为更安全的拼接写法:mytable.column.like(item + "%")
  • 若需要调整模糊匹配规则,仅需修改百分号的位置即可:
    • 后缀匹配:like(f"%{item}")
    • 任意位置匹配:like(f"%{item}%")
  • 若filter_value存在为空的可能,建议提前加非空判断,避免or_()传入空参数触发异常

内容的提问来源于stack exchange,提问作者Brian Huynh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:15:00