mysql-connector python 'IN' operator stored as list

mysql, mysql-connector, python

Solution

I'm not familiar with mysql-connector, but its behavior appears to be similar to MySQLdb in this regard. If that's true, you need to use a bit of string formatting:

sql = """SELECT avg(downloadtime) FROM tb_npp where date(date) = %s 
         and substring(host,6,3) in ({c})""".format(
            c=', '.join(['%s']*len(dc)))    
args = ['2013-07-01'] + dc
cursor3.execute(sql, args)

Problem

I am using mysql-connector with python and have a query like this: ``` SELECT avg(downloadtime) FROM tb_npp where date(date) between %s and %s and host like %s",(s_date,e_date,"%" + dc + "%") ``` NOw, if my variable 'dc' is a list like this: ``` dc = ['sjc','iad','las'] ``` Then I have a mysql query like below: ``` SELECT avg(downloadtime) FROM tb_npp where date(date) = '2013-07-01' and substring(host,6,3) in ('sjc','las'); ``` My question is, how do I write this query in my python code which will convert my variable 'dc' to a list? I tried the below query but getting error: Failed processing format-parameters; 'MySQLConverter' object has no attribute '_list_to_mysql' ``` cursor3.execute("SELECT avg(downloadtime) FROM tb_npp where date(date) between %s and %s and substring(host,6,3) in %s",(s_date,e_date,dc)) ``` Can somebody please tell me what I am doing wrong? Thanks in advance

Original source

Related problems