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

distinct中文是什么意思近义词是什么 | SQL中关于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环节字的4种用法的具体形式

相关内容