2017-08-30 24 views
-2

我想刪除MySQL表中的所有記錄,除了少數我使用下面的查詢操作數應包含在MySQL 2列(或多個)錯誤NOT IN

DELETE FROM table_name WHERE (user_id,year) NOT IN 
(
    '1','2009', 
    '3','2010', 
    '7','2007' 
); 

但它顯示的錯誤爲操作數應包含2列( S)是否正確方法不是使用多個列在同一個表

+0

爲什麼要投票?有什麼問題 – hrishi

+0

也不知道一個關閉的議題下的主題。它與編程無關嗎? – hrishi

回答

2

的語法是錯誤的,它應該是

DELETE FROM table_name WHERE (user_id, year) NOT IN 
(
    ('1', '2009'), 
    ('3', '2010'), 
    ('7', '2007') 
); 

注意周圍的每個元組的附加括號。

0

標識是前人的精力如此獨特

DELETE FROM table_name WHERE id NOT IN 
(
    1, 
    3, 
    7 
); 

要高度重視工作

+0

它在「用戶」表中應該是唯一的,但我們現在並不真正從哪個表中刪除。 –

相關問題