SELECT * FROM Table WHERE Id IN (1,2,3,4,5,6)
Обратите внимание, что вы не можете вставить весь список в параметризованный запрос - например, WHERE Id IN (?)
с параметром, содержащим '1,2,3,4,5,6'
, не даст желаемых результатов.
Хороший способ избежать динамического построения строки SQL (и потенциально подвергнуть себя SQL-инъекции ) - это динамически построить количество параметров , а затем объединить их в ваш SQL.
Полный пример с Python и SQLite (хотя этот метод может использоваться на любом языке с любым ядром базы данных SQL):
ids = [1, 2, 3, 4, 5, 6]
params = tuple(ids) # because sqlite wants the parameters in tuple format
paramstring = ', '.join(['?' for dummyp in ids])
# paramstring now contains '?, ?, ?, ?, ?, ?'
# - the same number of '?' as the number of ids
sql = 'SELECT * FROM Table WHERE Id IN (' + paramstring + ')'
# sql now contains 'SELECT * FROM Table WHERE Id IN (?, ?, ?, ?, ?, ?)'
conn = sqlite3.connect(':memory:')
cursor = conn.execute(sql, params)
# You can now iterate through the cursor to get your data