python中关于sql 添加参数

背景:数据库day字段为date类型,这个时候后端传一个值where条件 day = " %s "查询

sql = " select,sum(case when resultstatus='success' then 1 else 0 end) as successnumber,sum(case when resultstatus like '%fail%' then 1 else 0 end) as failnumber  from table where day = '%s' % day

cursor.execute(sql)

但是一直报错,后来才发现,sql中前面的%要给转义,不然的话,就会报错(具体报错原因自己看)转义方法也就是:%%

但是后面的参数传入就不需要转义:

sql = " select,sum(case when resultstatus='success' then 1 else 0 end) as successnumber,sum(case when resultstatus like '%%fail%%' then 1 else 0 end) as failnumber  from table where day = '%s' % day

cursor.execute(sql)

代码如上,这样才可以正确执行sql语句

ps:这个问题我定位了一天才发现。

原文地址:https://www.cnblogs.com/feixiaohuijava/p/6617503.html