SQL中关于distinct关键字的四种用法 distinct中文是什么意思近义词是什么

其原因是distinct只能返回它的目标字段,而无奈返回此外字段,这个题目让 扰了良久,用distinct不克不及办理的话,我只需用2重循环盘查来办理,而多么对于1个数据量极度大的站来讲,无疑是会间接影响到苦守的 。所以我花了得多岁月来研究这个题目,网上也查不到办理方案,期间把容容拉来接济,下场是咱们两人都释怀了
上面先来看看例子:
table
id name
1 a
2 b
3 c
4 c
5 b
博客库构造梗概多么,这只是1个复杂的例子,实践环境会复杂得多 。
比方我想用1条语句盘查得到name不几回再三的全数数据,那就必须操纵distinct去掉过剩的几回再三记录 。
1
select distinct name from table
得到的下场是:
name
a
b
c
仿佛到达成就了,但是,我想要得到的是id值呢?改1下盘查语句吧:
select distinct name, id from table
下场会是:
id name
1 a
2 b
3 c
4 c
5 b
distinct怎样没起浸染?浸染是起了的,不过他同时浸染了两个字段,也便是必须得id与name都相似的才会被扫除 。。。。。。。
咱们再改改盘查语句:
select id, distinct name from table
很遗憾,除了纰谬静态你甚么也得不到,distinct必须放在开头 。难到不克不及把distinct放到where条件里?能,还是报错 。。。。。。。
很麻烦吧?险些,费精心理都没能办理这个题目 。无法子步骤,持续找人问 。
拉住公司里1JAVA步骤员,他给我演示了oracle里操纵distinct以后,也没找到mysql里的办理方案,最后下班过去他倡导我尝尝group by 。
试了半天,也不可,最后在mysql手册里找到1个用法,用group_concat(distinct name)共同group by name实现了我所须要的死守,欢腾,天佑我也,赶快尝尝 。
报错 。。。。。。。。。。。。释怀 。。。。。。。连mysql手册也跟我过不去,先给了我盼望,从此又把我推向消极,好狠哪 。。。。
再承当1查,group_concat函数是4.1支持,晕,我4.0的 。无法子步骤,降级,升完级1试,失利 。。。。。。
究竟?下场结果搞定了,不过多么1来,又必须恳求客户也降级了 。
蓦然灵机1闪,既然或许操纵group_concat函数,那此外函数能行吗?
赶忙用count函数1试,失利,我 。。。。。。。想哭啊,费了这么多光阴光阴 。。。。。。。。原来就这么复杂 。。。。。。
当初将残缺语句放出:
select *, count(distinct name) from table group by name
下场:
id name count(distinct name)
1 a 1
2 b 1
3 c 1
【SQL中关于distinct关键字的四种用法 distinct中文是什么意思近义词是什么】以上便是SQL中对于distinct环节字的4种用法的具体形式