Django原始查询

2024-10-01 13:29:10 发布

您现在位置:Python中文网/ 问答频道 /正文

lists = []
lists = cursor.execute(
    "select a.employee_id,a.first_name,"
    "c.breakfast_count, b.lunch_count,"
    "d.dinner_count from qpscsmas_employee_details a,"
    "qpscsmas_emp_lunch b,"
    "qpscsmas_emp_breakfast c,"
    "qpscsmas_emp_dinner d "
    "where a.rfidcardno = %s "
    "and b.rfidcardno = %s "
    "and c.rfidcardno = %s "
    "and d.rfidcardno = %s,"
    "['s','s','s','s']"
)
print lists

上面的查询给了我一个空列表。在

问题是它也没有显示任何错误。在

当我给出精确的值来代替参数时,它在MySQL中运行得很好


Tags: andidexecutecountemployeeselectcursorlists
1条回答
网友
1楼 · 发布于 2024-10-01 13:29:10

首先,您需要从参数列表中删除双引号,并用逗号将其与查询字符串分隔开,例如:

cursor.execute("SELECT foo FROM bar WHERE baz = %s", [self.baz])

执行查询后,需要获取行,请参见Executing custom SQL directly。您可以获取下一个(cursor.fetchone())或获取所有行(cursor.fetchall())。在

示例:

^{pr2}$

此清理后的查询应该可以工作:

cursor.execute(
    "select a.employee_id,a.first_name,"
    "c.breakfast_count, b.lunch_count,"
    "d.dinner_count from qpscsmas_employee_details a,"
    "qpscsmas_emp_lunch b,"
    "qpscsmas_emp_breakfast c,"
    "qpscsmas_emp_dinner d "
    "where a.rfidcardno = %s "
    "and b.rfidcardno = %s "
    "and c.rfidcardno = %s "
    "and d.rfidcardno = %s", 
    ['s','s','s','s']
)

相关问题 更多 >