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

SQLAlchemy操作BigQuery时能否给查询对象追加原生SQL过滤片段?

可以直接追加原生SQL片段作为过滤条件

你可以使用SQLAlchemy内置的text()方法包装原生SQL片段,再传入filter()方法即可追加到现有查询对象中,SQLAlchemy会自动将新条件用AND逻辑拼接到原有WHERE子句中,无需手动添加开头的AND关键字。


实现示例:

  1. 先导入依赖的text方法
from sqlalchemy import text
  1. 追加自定义过滤条件
# 原有查询逻辑
query = TestModel.query.filter(TestModel.timestamp.__gt__(1010101010))
# 追加EXISTS原生过滤逻辑
query = query.filter(text("EXISTS (SELECT * FROM UNNEST(column_name) WHERE column_key LIKE '%tit%')"))

动态参数安全实现建议:

如果你的匹配关键词是动态可变的,不要直接拼接字符串避免SQL注入风险,可以使用占位符+参数绑定的方式实现:

from sqlalchemy import text

search_key = "tit"
query = query.filter(
    text("EXISTS (SELECT * FROM UNNEST(column_name) WHERE column_key LIKE :pattern)")
).params(pattern=f"%{search_key}%")

内容的提问来源于stack exchange,提问作者Eric Lee

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 02:54:08