You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中如何删除同一行内指定列值全部重复的数据行?

如何删除表中a到g列值全部相同的数据行

你之前的SQL逻辑方向错了——那是用来删除和其他行a-g列重复的行,但你实际要删的是自身a到g列的值完全一致的行,这是两个完全不同的需求。

正确实现方式

方法一:直接列值相等判断

这种写法直观易懂,直接检查每一列与下一列是否相等:

DELETE FROM survey
WHERE a = b AND b = c AND c = d AND d = e AND e = f AND f = g;

方法二:用极值函数简化语句

如果涉及的列比较多,用GREATEST和LEAST函数会更简洁——当所有列值相同时,最大值必然等于最小值:

DELETE FROM survey
WHERE GREATEST(a, b, c, d, e, f, g) = LEAST(a, b, c, d, e, f, g);

为什么你之前的SQL无效

你写的INNER JOIN逻辑是:找到存在另一个ID更小的行,且两行的a-g列完全匹配,然后删除ID更大的那行。但你的表中ID691的a-g列全为10,没有其他行和它的a-g列完全一致,所以这个JOIN根本匹配不到任何数据,自然无法删除目标行。

内容的提问来源于stack exchange,提问作者mookmook

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 07:11:00