如何在mysql中使用DISTINCT去重

哦,是的,DISTINCT...这用于在 MySQL 中删除重复项...这很常见...
这是关键字 DISTINCT...与 SELECT 一起使用...
我想找一个表来尝试...假设有一个名为 user_table 的表...
如果您只想查看不重复的城市...只需编写...
SELECT DISTINCT city FROM user_table;
看起来...像这样...城市将被放置在 user_table 中为您列出了所有列差异...
如果城市包括北京、上海和广州...这将为您提供三个...没有重复...
如果要从多个列中删除重复项...例如姓名和城市不能相同...
只需编写 SELECT DISTINCT name, city FROM user_table;
注意...这是检查两列是否重复...
例如姓名张三和城市。
北京...是第一个...
那么名字还是张三,上海城市...是第二...不会被去掉...
因为name列是重复的...但是城市不是...
那么如果你想统计有多少个不重复的城市...
用COUNT配合...这样写...
SELECT COUNT(DISTINCT city) FROM user_table;
这个查询就会是这个数字...会说你,怎么user_table 表中包含许多不同的城市...
非常方便...有时使用...
但是你必须小心...使用 DISTINCT 时...查询可能会慢一点...
特别是当表很大...比如数百万条记录...
因为您需要先对数据进行排序...或者使用其他方法查找重复项...
所以...如果可以...在该列上建立索引...它可能会更快...
而且...它是 NULL 啊...它将被视为一个特殊值...它将在重复数据删除过程中被考虑...
例如,如果有两条记录...两个城市记录都有 NULL 值...它将只考虑一个...
好吧...仅此而已...

mysql去重是什么意思

结论: 1 、DISTINCT关键字直接去除重复的列值,简单高效。
例如:从学生中选择专有名称; 2 、GROUP BY 按列分组去重,适合特殊的列组合,例如:SELECT name FROM Students GROUP BY em; 3 、UNIQUE约束和索引防止重复插入,必须在定义表时添加,例如:CREATE TABLE Student(name UNIQUE); 4 、UNION ALL合并查询,自动去重,例如:SELECT name FROM table1 UNION ALL SELECT name FROM table2 ; 5 、临时表结合NOT IN过滤,适合复杂的去重需求。
例如:创建临时表后,SELECT FROM temp_table WHERE name NOT IN(SELECT name FROM Another_table);
选择正确的方法,您将不会厌倦删除重复。