如何在Mysql中删除相同的值

19 浏览
0 Comments

如何在Mysql中删除相同的值

我想要删除主题字段中的重复值,并保留第一行的值。

例如:

无主题
1  1234
2  1234
3  1234

no = 自动递增

输出:

无主题
1  1234


这是我的代码:

$sql ="DELETE FROM data
WHERE no IN (SELECT * 
             FROM (SELECT no FROM data
                   GROUP BY topic HAVING (COUNT(*) > 1)
                  ) AS A
             )";

这段代码删除了第一个值,但我想要删除所有相同的值,并保留第一个值,就像示例中一样。

0
0 Comments

问题出现的原因:在Mysql中,可能会存在重复的值,需要删除这些重复的值,只保留一个。

解决方法:使用上述给出的代码,通过子查询和联合查询的方式,找出重复的值,并将其删除。

文章内容如下:

在Mysql中,有时候我们需要删除重复的值,只保留一个。下面给出了一个解决该问题的代码示例:

DELETE FROM data
WHERE no NOT IN (
    SELECT no FROM (
        SELECT MIN(no) as no, topic FROM data
        GROUP BY topic
    ) NotDelete
);

通过这段代码,我们可以删除重复的值,只保留每个topic中的最小值。这里使用了子查询和联合查询的方式,先找出每个topic中的最小值,然后将其余的重复值删除。

如果您想进一步了解该代码的执行情况,可以点击以下链接查看在sqlfiddle上的演示:sqlfiddle

感谢这段代码的作者,它对我来说非常有用!

0