Próbuję utworzyć oświadczenie następująco:jak formatować ciąg SQL w klauzuli z Pythonem
SELECT * FROM table WHERE provider IN ('provider1', 'provider2', ...)
Jednak mam pewne problemy z formatowaniem string go z API Django. Oto co mam do tej pory:
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)')
ciekawy. Dlaczego wykonujesz surowe zapytanie sql 'IN', gdy masz już ORM Django? – jdi
@jdi Jest to długie zapytanie sql, które buduję z łączeniem ciągów na podstawie pewnych wprowadzonych przez użytkownika wartości (około 20 linii). – David542
ORM ma jednak agregacje. Ale myślę, że muszę po prostu wierzyć na słowo, że ORM nie może tego zrobić :-) – jdi