Mysql 去重

需要查詢不重複的記錄值
例如有如下表結構和值
table
fid name sex
   a  男
2   b   男
3   c   女
4   d   女
5   a   男
6   b   男
一:distinct
select distinct name from table
結果:
name
a
b
c
d
如果要同時打開其它記錄
二:group by
1.select *, count(distinct name) from table group by name

2.select min(fid),name,sex from table group by name
結果:
fid name sex
1   a   男
2    b  男
3   c   女
4   d   女
如果要打開所有記錄,不指定字段用(*)
select * from table where fid in(Select min(fid) FROM table groupby name)
結果:
fid name sex
1   a   男
2    b  男
3   c   女
4   d   女
三:
查詢數據中所有某字段不重複的記錄
select * from table where name in(select name from table group byname having count(name)=2)
結果:
fid name sex
1    a  男
2    b  男
5    a   男
6    b   男
以此類推:
select * from table where name in(select name from table group byname having count(name)=1)

總結:
select distinct name from table打開不重複記錄的單個字段
select * from table where fid in(Select min(fid) FROM table groupby name)打開不重複記錄的所有字段值
select * from table where name in(select name from table group byname having count(name)=1)打開不重複任意次數的所有記錄
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章