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

为什么SQLParse移除注释后会截断剩余的SQL语句?

问题原因

你遇到的截断问题是SQL注释规则和sqlparse的注释删除逻辑共同导致的:

  • SQL的单行注释以--为标识,会生效到当前行结束,同一行内--之后的所有内容都会被判定为注释
  • 你提供的原始SQL第一行中,SELECT a , b FROM c WHERE d = '2021-01-01'这段内容完全跟在-- AS -- DD -- CC之后,属于单行注释的覆盖范围,开启strip_comments=True后会被整体删除
  • 接下来两行均为--开头的纯注释行,也会被完全删除,最终仅剩下未被注释覆盖的AND e = '2021-02-03'部分输出。
解决方法

将SQL语句和单行注释拆分到不同行即可,示例代码如下:

import sqlparse
query = '''/* lala */ 
-- AS -- DD -- CC 
SELECT a , b FROM c WHERE d = '2021-01-01' 
--comment 1
--comment2
AND e = '2021-02-03'
'''
print(sqlparse.format(query, strip_comments = True))

运行后输出符合预期:
SELECT a , b FROM c WHERE d = '2021-01-01' AND e = '2021-02-03'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:06:03