Я ищу команду sqlite3, которая позволяет мне выбирать записи, данные кортежем, позвольте мне объяснить на примере:
Вот мои данные:
my_data = [(1,8),(2,4),(3,5),(4,7),(5,13)]
пытается извлечь записи, чьи первые значения равны 1,2 или 4;следовательно, мой желаемый вывод:
[(1, 8), (2, 4), (4, 7)]
Я могу добиться этого с помощью кода ниже;Тем не менее, я думаю, что мой код не является оптимальным:
import sqlite3
my_data = [(1,8),(2,4),(3,5),(4,7),(5,13)]
key_indexes = (1,2,4)
conn = sqlite3.connect(':memory:')
c = conn.cursor()
c.execute('''CREATE TABLE my_table
(val_1 INTEGER, val_2 INTEGER)''')
for entry in my_data:
c.execute('''INSERT INTO my_table VALUES(?,?)''',entry)
conn.commit()
result = []
for ind in key_indexes:
c.execute('''SELECT* FROM my_table WHERE val_1 = ?''', (ind,))
temp_res = c.fetchall()
result.extend(temp_res)
Я ищу код, который может заменить цикл for в команде и командой sqlite3.Я хочу вставить (1,2,4)
где-нибудь в этой строке:
c.execute('''SELECT* FROM my_table WHERE val_1 = ?''', (ind,))
вместо выполнения цикла for.Заранее спасибо