背景:数据库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:这个问题我定位了一天才发现。