2015-10-18 57 views
1

我是SQL新手,正在查看DELETE關鍵字。我想知道如何一次刪除多行。例如,我想刪除CategoryID 2,3,5。我正在嘗試如何刪除SQL表中的特定行

DELETE FROM Categories 
WHERE CategoryID="2"AND CategoryID="3" AND CategoryID="5"; 

但沒有行並被刪除。如果我使用OR,那麼一切都會被刪除。

表名稱分類

CategoryID CategoryName   
    1   Beverages   
    2   Condiments   
    3   Confections  
    4   Dairy Products  
    5   Grains/Cereals  
    6   Meat/Poultry 
+0

只是爲了讓你的事情更清楚。 AND沒有被刪除,因爲沒有同時是2,3和5類的行.Sql逐行檢查,並且該條件(類別2,3和5同時)沒有行遵守它。這就是爲什麼在這種情況下你必須使用IN關鍵字。 – elvainch

+1

雙引號用於標識符,即在您的DELETE中「2」表示名爲2的列。對於字符串文字使用單引號,對於整數文字不使用引號。 – jarlh

回答

3

使用IN

DELETE FROM Categories 
WHERE CategoryID IN (2, 3, 5); 
+0

它工作。謝謝 –

0

在您的查詢的情況下,

DELETE FROM Categories 
WHERE CategoryID="2"AND CategoryID="3" AND CategoryID="5"; 

有與相同類別ID的數據作爲2排不出, 3,5。 所以你可以使用'IN'來獲取相應的行(從你的數據中獲得3行)

+0

你忘了解決方案的一部分。 (無論如何,與Gordon Linoff一樣......) – jarlh

+0

''2「'是SQL中的列名,而不是數字。數字不需要_any_引號,並且字符值需要單引號「'2'' –

+0

所以在SQL中,我們應該使用單引號是你在說什麼? @一匹馬與-沒有名字 –