Mysql
 sql >> Database >  >> RDS >> Mysql

Esecuzione di SELECT ... WHERE ... IN ... utilizzando MySQLdb

Sfortunatamente, è necessario costruire manualmente i parametri della query, perché per quanto ne so, non esiste un bind integrato metodo per legare un list a un IN clausola, simile a setParameterList() di Hibernate . Tuttavia, puoi ottenere lo stesso risultato con quanto segue:

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)