服務(wù)熱線
153 8323 9821
由于設(shè)計(jì)需要,需要查詢不重復(fù)的記錄值,同類(lèi)問(wèn)題,想必大家都遇到過(guò),于是乎馬上GOOGLE一下,發(fā)現(xiàn)此類(lèi)問(wèn)題還挺多,解決方案也不少,仔細(xì)看看。
例如有如下表結(jié)構(gòu)和值
table
fid
1
2
3
4
5
6
方案一:distinct
select distinct name from table
得到結(jié)果:
name
a
b
c
d
實(shí)現(xiàn)效果,那如果要同時(shí)打開(kāi)其它記錄呢?再試試
select distinct name,id from table
測(cè)試沒(méi)什么效果,查下得知,這樣實(shí)際是要name和id字段都重復(fù)才被篩選。繼續(xù)查找可得如下方法:
方案二:group by
select *, count(distinct name) from table group by name
Oracle下測(cè)試失敗,據(jù)說(shuō)MYSQL下通過(guò),不管,繼續(xù)思考....
翻翻書(shū),試試
select min(fid),name,sex from table group by name
成功,現(xiàn)實(shí)如下結(jié)果:
fid
1
2
3
4
繼續(xù)思考,如果要打開(kāi)所有記錄,不指定字段用(*),貌似這方法就不行了!
select
測(cè)試成功
fid
1
2
3
4
方案三:
本來(lái)已經(jīng)完了,突然想起前幾天在網(wǎng)上查了查詢數(shù)據(jù)中所有某字段不重復(fù)的記錄
select
得到如下結(jié)果:
fid
1
2
5
6
以此類(lèi)推:
select
按道理說(shuō)沒(méi)問(wèn)題,大家試試~~
再多的字段都全部現(xiàn)實(shí)。哎,原來(lái)如此簡(jiǎn)單!回顧網(wǎng)上方法distinct,Inner
總結(jié)如下:
select distinct name from table打開(kāi)不重復(fù)記錄的單個(gè)字段
select
select