como fazer consulta sqlite mais eficiente?
-
03-07-2019 - |
Pergunta
Tenho a declaração follow sql em um programa que eu estou construindo, onde ID_LIST às vezes é uma lista muito grande.
for id in id_list:
self.cursor.execute("""update songs set rating='L' where trackid=?""", (id,))
self.db.commit()
Existe uma maneira mais eficiente de fazer isso que não envolve tantas consultas de atualização?
Solução
SQL:
update songs set rating='L' where trackid IN (id_list)
Código:
self.cursor.execute("update songs set rating='L' where trackid IN (%s)"%','.join(['?']*len(id_list)), id_list)
self.db.commit()
Há também é mais elegante, mas solução sub-óptima:
self.cursor.executemany("update songs set rating='L' where trackid=?", id_list)
self.db.commit()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow