Справка по выбору и удалению SQL - PullRequest
0 голосов
/ 08 апреля 2011

Как вы выбираете или удаляете определенный список чисел из таблицы?

Например,

выберите * из таблицы, где ID = 1,2,3,4,5,6

не работает. Я должен был бы сделать, где ID = 1 или ID = 2 или ID = 3 и т. Д.

Как вы используете список, разделенный запятыми, чтобы выбрать несколько значений, используя предложение where?

Ответы [ 7 ]

2 голосов
/ 08 апреля 2011
select * from table where ID IN (1,2,3,4,5,6)
2 голосов
/ 08 апреля 2011
select * from table where ID IN(1,2,3,4,5)
0 голосов
/ 08 апреля 2011
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
0 голосов
/ 08 апреля 2011

если вы ищете динамический запрос, то

execute ('выберите * из таблицы, где ID IN (1,2,3,4,5,6)')

в противном случае

выберите * из таблицы, где ID IN (1,2,3,4,5,6)

сделает работу

0 голосов
/ 08 апреля 2011

вы можете попробовать с

Where ID in (1,2,3)
0 голосов
/ 08 апреля 2011
0 голосов
/ 08 апреля 2011

Попробуйте использовать оператор in, выберите * из таблицы, где ID в (1,2,3,4,5,6) тоже работает с delete

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...