MySql Delete NOT IN - 但比较整行

Posted

技术标签:

【中文标题】MySql Delete NOT IN - 但比较整行【英文标题】:MySql Delete NOT IN - but compare entire rows 【发布时间】:2013-12-26 00:24:39 【问题描述】:

这个应该比较简单。我翻遍了 mysql 文档,找不到相关信息。

场景很简单。我有一个有 3 列的表。都是复合唯一键,所有键加在一起必须是唯一的才能成为有效行。

如何在此设置中使用 DELETE NOT IN?

我尝试了类似的方法:

DELETE FROM my_table WHERE (col1,col2,col3) NOT IN (val1,val2,val3), (val4,val5,val6)

如您所见,我想匹配值集,而不一定是值本身。

想法?

【问题讨论】:

【参考方案1】:

INNOT IN 后面必须跟一个列表。比较多列时,列表中的项目本身就是带括号的列表。所以:

DELETE FROM my_table
WHERE (col1,col2,col3) NOT IN ((val1,val2,val3), (val4,val5,val6));

【讨论】:

啊。我很接近,但没有雪茄。谢谢!

以上是关于MySql Delete NOT IN - 但比较整行的主要内容,如果未能解决你的问题,请参考以下文章

MySQL学习——delete(truncate)

MySQL 中delete删除sql语句用法

Mysql错误之delete别名问题

Mysql delete操作

mysql中delete和truncate区别

MySQL DELETE 语句