Delete

SQL刪除數據名將等於多個變數的行

  • January 16, 2014

研究類似的常見查詢確實有幫助,但我對我的問題仍然一無所知。請注意,我打算使用它的數據庫包含大約 1000 行(下面列出的相同 2 列),其中 300-350 需要根據其 ID 刪除。

例如,我認為查詢應該類似於(table = mytable):

Title ID
One   1
Two   2
Three 3
Four  4

delete from mytable
where ID = 1 or 2 or 3;

顯然,當涉及到刪除 300 奇數行時,在每個變數之間放置一個運算符可能不是最好的方法(也可能不是正確的),因此我問這個問題的原因!

任何建議將不勝感激,謝謝!

如果我理解你

DELETE FROM mytable WHERE id NOT IN(SELECT id FROM(
 SELECT MIN(id)as id FROM mytable 
   GROUP BY title 
   HAVING COUNT(title)>1 
UNION
 SELECT id FROM mytable 
   GROUP BY title 
   HAVING COUNT(title)=1)x);

SQL小提琴

或者更簡單的每個 ypercube sugesstion

SQL小提琴

例如,您可以使用 IN 運算符

WHERE id IN (1,2,3)

您如何決定要刪除哪些行,這可能有助於我們回答?

引用自:https://dba.stackexchange.com/questions/56887