Estoy tratando de crear una declaración de la siguiente manera:Cómo cadena de formato cláusula IN de SQL con Python
SELECT * FROM table WHERE provider IN ('provider1', 'provider2', ...)
Sin embargo, estoy teniendo algunos problemas con el formato de cadenas de ella desde la API de Django. Esto es lo que tengo hasta ahora:
profile = request.user.get_profile()
providers = profile.provider.values_list('provider', flat=True) # [u'provider1', u'provider2']
providers = tuple[str(item) for item in providers] # ('provider1', 'provider2')
SQL = "SELECT * FROM table WHERE provider IN %s"
args = (providers,)
cursor.execute(sql,args)
DatabaseError
(1241, 'Operand should contain 1 column(s)')
curioso. ¿Por qué estás haciendo una consulta sql 'IN' cuando ya tienes el django ORM? – jdi
@jdi Es una larga consulta SQL que estoy construyendo con concatenación de cadenas basada en algunos valores ingresados por el usuario (aproximadamente 20 líneas de longitud). – David542
Sin embargo, el ORM tiene agregaciones. Pero supongo que tengo que decirles que el ORM no puede hacerlo :-) – jdi