SQLite在查询中添加行

时间:2013-09-11 12:40:06

标签: python sqlite

我正在尝试在sqlite调用中进行一些数学运算。我有两列要添加其值,然后检查它们是否小于我输入的值。

    c = self.db.cursor()
    c.execute("BEGIN EXCLUSIVE TRANSACTION");
    c.execute("SELECT ID as id,task FROM tube WHERE state=0 OR (state=1 & ts+ttr<? ) ORDER BY ID ASC LIMIT 1", (time.time(),))
    task = c.fetchone()
    print task
    if task != None:
        ts = time.time();
        c.execute("UPDATE tube SET state=1,ts=? WHERE ID=?", (ts, task['id']))
        task['ts'] = ts
    else:
        task = None

    self.db.commit()
    return task

从我可以告诉它不做这个操作。它仍然返回一行,但不是基于我提供的逻辑。

1 个答案:

答案 0 :(得分:4)

您正在使用按位和运算符&,您可能需要逻辑AND

按位运算符的优先级高于比较(=<),而逻辑运算符的优先级更低。因此,state=1 & ts+ttr<?state=1 AND ts+ttr<?

非常不同