Mysql 如果该值存在于其他列中,则排除该行

Mysql 如果该值存在于其他列中,则排除该行,mysql,sql,Mysql,Sql,这是我的MYSQL表: 我想排序并测试num+1中的值是否存在于num中,num+2中的值是否存在于num中,num+3字段中的值是否存在于num中,num+4字段中的值是否存在于num中-对于所有行-如果为true,则删除该行 预期结果: 我的代码是: DELETE interface_T.num, interface_T.num+1, interface_T.num+2, interface_T.num+3, interface_T.num+4 FROM interface_T WHERE

这是我的MYSQL表:

我想排序并测试num+1中的值是否存在于num中,num+2中的值是否存在于num中,num+3字段中的值是否存在于num中,num+4字段中的值是否存在于num中-对于所有行-如果为true,则删除该行

预期结果:

我的代码是:

DELETE interface_T.num, interface_T.num+1, interface_T.num+2, interface_T.num+3, interface_T.num+4
FROM interface_T
WHERE (((interface_T.num+1) In (select num from interface_T ))) OR (((interface_T.num+2) In (select num from interface_T ))) OR (((interface_T.num+3) In (select num from interface_T ))) OR (((interface_T.num+4) In (select num from interface_T )));

这就是你要找的吗

delete t
    from table t join
         table tnext
         on tnext.id in (t.num+1, t.num+2, t.num+3, t.num+4);
编辑:

如果在同一行的其他位置找到num值,则删除该行


您能告诉我们您使用的查询吗?你用了distinct子句吗?
请先试用,然后过来评论

您的代码在哪里!到目前为止你都试了些什么?我编辑了帖子并放置了代码,但我只有一个表格界面这是正确的答案,你说只有一个表格“界面”是什么意思?这不是一个真正的答案。应该是注释。我尝试了此代码,但它在值存在时删除了所有行:从接口中删除,其中[interface_T]。[num+1]在从接口中选择num或[interface_T]。[num+2]在从接口中选择num或[interface_T]。[num+3]在从接口中选择num或[interface_T]。[num+4]在界面中选择num;此查询将删除包含已测试数据的所有行value@ImiiIik,这就是您想要的吗?不,我只想删除包含num列中找到的值的行
delete from tablename
where num in (`num+1`, `num+2`,`num+3`, `num+4`)