Python MySQLdb在一行中多次使用%S

时间:2017-08-14 11:40:07

标签: python mysql sql mysql-python

    Date = self.Date.selectedDate()
    Date = QDate.toPyDate(Date)

    db = MySQLdb.connect(host="localhost", user="root", passwd="Benjamin217", db="Auski")
    c = db.cursor()

    vins = "SELECT Sum(ChildrenNum) FROM OrderDetails WHERE CheckInDate <= '%s' AND CheckOutDate > '%s'"

    vins2 = "SELECT Sum(AdultNum) FROM OrderDetails WHERE CheckInDate <= '%s' AND CheckOutDate > '%s'"

    c.execute(vins, [Date], [Date])
    ChildrenNum = c.fetchone()[0]
    c.execute(vins2, [Date], [Date])
    AdultNum = c.fetchone()[0]
    print(ChildrenNum + AdultNum)
    c.close()
    db.close()

给出错误:

c.execute(vins, [Date], [Date])

TypeError:execute()需要2到3个位置参数,但是给出了4个

我几乎试图选择我的输入日期介于其间的所有条目。我想知道是否有人有一个更干净的方式来做这个最好的工作。因为我还没有办法解决这个问题。

1 个答案:

答案 0 :(得分:0)

您将值作为单独的单项列表传递,而不是作为单个列表传递。这可行:

c.execute(vins, [Date, Date])