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

Python 3.6.5中SQLite3查询无法使用比较运算符的问题求助

解决SQLite查询中的OperationalError语法错误

Hey Harry, let's get to the bottom of this error right away!

问题的核心原因

你遇到的OperationalError: near ">": syntax error是因为SQL语法不符合标准。在SQL里,IS运算符是专门用来判断值是否为NULL(比如bytes IS NULL或bytes IS NOT NULL),它不能和>这类数值比较运算符组合使用。你写的bytes is > ?是完全错误的语法,所以SQLite无法解析它。

关于Python 2.7的疑惑

其实这里大概率是你的回忆偏差——SQLite的语法规则在Python 2和3的sqlite3模块中是完全一致的,这种错误写法在任何版本里都应该会抛出相同的语法错误。可能你之前在Python 2.7中运行的是正确的版本(没加is),只是现在记混了。

正确的查询写法

只需要去掉多余的is,就能正常执行查询了:

c.execute("select count from mydb where bytes > ?", (myvariable,))

如果你的实际需求是要同时筛选bytes不为NULL且大于指定值,可以这样写:

c.execute("select count from mydb where bytes IS NOT NULL AND bytes > ?", (myvariable,))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:07:55