操作数应该在mysql NOT IN中包含2列错误

hri*_*shi 0 mysql

我想从mysql表中删除所有记录,除了我在下面使用查询的几个

 DELETE FROM table_name WHERE (user_id,year) NOT IN
 (
  '1','2009',
  '3','2010',
  '7','2007'
 );
Run Code Online (Sandbox Code Playgroud)

但它显示错误,因为操作数应该包含2列(s) 是否正确使用不在同一个表中的多个列上的方法

Mat*_*ari 6

语法错了,它应该是

DELETE FROM table_name WHERE (user_id, year) NOT IN
(
  ('1', '2009'),
  ('3', '2010'),
  ('7', '2007')
);
Run Code Online (Sandbox Code Playgroud)

注意每个元组周围添加的括号.