Python Sqlite3-选择语法错误?

Python Sqlite3-选择语法错误?,python,list,sqlite,zip,Python,List,Sqlite,Zip,我试图对照某些列表检查表中的行中的值,并获取匹配行的数量,但不断出现语法错误,我似乎无法克服: c.execute("SELECT count(*) FROM myTable WHERE Column1 > Column2 AND (X = ?, Y = ?, Z = ?)", zip(listX, listY, listZ)) number = c.fetchall() print(number) 十、 Y和Z是列名。我得到: sqlite3.OperationalError: ne

我试图对照某些列表检查表中的行中的值,并获取匹配行的数量,但不断出现语法错误,我似乎无法克服:

c.execute("SELECT count(*) FROM myTable WHERE Column1 > Column2 AND 
(X = ?, Y = ?, Z = ?)", zip(listX, listY, listZ))
number = c.fetchall()
print(number)
十、 Y和Z是列名。我得到:

sqlite3.OperationalError: near ",": syntax error

我做了一些类似的事情,但使用了
INSERT
而不是
SELECT
,效果很好。我是sqlite3的新手;当使用
WHERE
时,选择
是否使用与插入
不同的语法?非常感谢

多重比较必须用AND或or之类的逻辑运算符分隔(逗号应该是什么意思?)

选择计数(*)
从myTable
其中Column1>Column2
和X=?
和Y=?
Z=?;
或者,您可以使用行值,但您的Python可能还不足以支持它:

选择计数(*)
从myTable
其中Column1>Column2
和(X,Y,Z)=(?,?);
如果要检查多组值,则必须将适当数量的检查添加到SQL查询中,或者只需执行多次:

number=0
对于zip中的xyz(listX、listY、listZ):
c、 从myTable执行(''选择计数(*)
其中Column1>Column2
和X=?
和Y=?
和Z=?'',xyz)
number+=c.fetchone()[0]

对于我得到的第一个示例:
ValueError:参数是不支持的类型
-X、Y、Z是类型
TEXT
,列表包含文本字符串,但是-我想可能与压缩列表作为值有关?第二次尝试返回
sqlite3.OperationalError:near“,”:syntax error