Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Executando SELECT ... WHERE ... IN ... usando MySQLdb


Infelizmente, você precisa construir manualmente os parâmetros de consulta, porque até onde eu sei, não há bind embutido método para vincular uma list para um IN cláusula, semelhante ao setParameterList() do Hibernate . No entanto, você pode fazer o mesmo com o seguinte:

Python 3:
args=['A', 'C']
sql='SELECT fooid FROM foo WHERE bar IN (%s)' 
in_p=', '.join(list(map(lambda x: '%s', args)))
sql = sql % in_p
cursor.execute(sql, args)

Python 2:
args=['A', 'C']
sql='SELECT fooid FROM foo WHERE bar IN (%s)' 
in_p=', '.join(map(lambda x: '%s', args))
sql = sql % in_p
cursor.execute(sql, args)