如何從表中選擇或刪除特定數字列表?SQL選擇和刪除幫助
例如,
SELECT * FROM表,其中ID = 1,2,3,4,5,6
不起作用。我將不得不做的地方ID = 1或ID = 2或ID = 3等等
你如何使用逗號描述列表來選擇多個值使用where where子句?
如何從表中選擇或刪除特定數字列表?SQL選擇和刪除幫助
例如,
SELECT * FROM表,其中ID = 1,2,3,4,5,6
不起作用。我將不得不做的地方ID = 1或ID = 2或ID = 3等等
你如何使用逗號描述列表來選擇多個值使用where where子句?
select * from table where ID IN(1,2,3,4,5)
select * from table where ID IN (1,2,3,4,5,6)
嘗試在操作使用SELECT * FROM表在哪裏(1,2,3,4,5,6) 作品與刪除過
SELECT * FROM myTable WHERE id BETWEEN 1 AND 6
http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between
ID您可以嘗試使用
Where ID in (1,2,3)
i F你正在尋找動態查詢,然後
執行( 'SELECT * from表where ID IN(1,2,3,4,5,6)')
否則
SELECT * FROM表其中ID IN(1,2,3,4,5,6)
將做的工作
爲什麼downvote? – 2011-04-08 20:54:39
這個答案比其他幾個說得完全一樣的東西晚了很多,並沒有提供任何新的東西。此外,這兩個建議的解決方案實際上是相同的 - 這兩個sql語句中沒有任何區別...... – 2011-04-09 09:41:50
SELECT * FROM Table WHERE Id IN (1,2,3,4,5,6)
注意,你不能在一個參數化查詢插入整個列表 - 例如,WHERE Id IN (?)
帶一個參數包含'1,2,3,4,5,6'
將不會產生您所追求的結果。
一個很好的方式,以避免動態生成的SQL字符串(和可能暴露自己SQL Injection)是動態構建參數數,然後將它們連接爲您的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
順便提一下,awwesome用戶名。永遠不要失去它。 – SquidScareMe 2011-04-08 17:02:23