Sqlite3子查询参数化

时间:2013-04-19 16:28:11

标签: python python-3.x sqlite

我在Python 3.3中使用Sqlite3。我试图运行以下查询:

c.execute('INSERT OR REPLACE INTO system (id, date,code,number) VALUES 
((select id from system where date=:date, code=:thiscode), :date,:thiscode, 
coalesce((select profiles from system where date=:date, code=:thiscode), 1))', 
{"date": mdate, "thiscode": thiscode})

该表用于跟踪一个月内发生的代码实例数。如果月份'日期/代码组合已经存在,然后将1添加到它的数字,否则使用数字= 1创建它。

给出的错误是无益的

sqlite3.OperationalError: near ",": syntax error

我猜测原因涉及子查询参数化,因为我还没有看到其他人使用它的例子,但我对建议持开放态度。

1 个答案:

答案 0 :(得分:1)

where date=:date, code=:thiscode

这是什么意思? 我想你想写这个:

where date=:date and code=:thiscode