Как вывести запросом много записей из БД по нескольким параметрам?
def checkDBtest():
conn = sqlite3.connect('orders.db')
cur = conn.cursor()
cur.execute("select * from items where iditem='"+("10")+"'")
return cur.fetchall()
Так вывожу запись с id 10.
Можно ли как-то вывести сразу много записей. Например, у меня есть массив [10, 20, 1,3], могу ли я вывести одним запросом (без цикла) сразу все эти строки?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
В таких случаях можно использовать параметризированные запросы и создавать их динамически:
ids = [10, 20, 1,3]
qry = "select * from items where iditem in ({})".format(",".join("?" * len(ids)))
cur.execute(qry, ids)
сгенерированный запрос:
In [180]: qry
Out[180]: 'select * from items where iditem in (?,?,?,?)'