mysql 数据入库去重_MySQL中去重 distinct 的用法 ,数据库去重distinct「建议收藏」

mysql 数据入库去重_MySQL中去重 distinct 的用法 ,数据库去重distinct「建议收藏」一、distinct位置1.单独的distinct只能放在开头,否则报错,语法错误mysql>SELECTnickname,DISTINCT(openid)fromims_ewei_shop_member;[SQL]SELECTnickname,DISTINCT(openid)fromims_ewei_shop_member;[Err]1064-Youhavean…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、distinct 位置

1. 单独的distinct只能放在开头,否则报错,语法错误

mysql>SELECT nickname,DISTINCT(openid) from ims_ewei_shop_member;

[SQL] SELECT nickname,DISTINCT(openid) from ims_ewei_shop_member;

[Err] 1064 – You have an error in your SQL syntax; check the manual that corresponds

to your MySQL server version for the right syntax to use near ‘DISTINCT(openid)

from ims_ewei_shop_member’ at line 1

2. 现在把distinct放在开头

SELECT DISTINCT(openid),nickname from ims_ewei_shop_member;

# 查询成功

3. 与其他函数使用时候,没有位置限制如下

SELECT nickname,count(DISTINCT(openid)) from ims_ewei_shop_member;

# 这种情况下是正确的,可以使用。

二、distinct用法

1. 在count计算不重复的记录的时候能用到

SELECT COUNT(DISTINCT(openid)) from ims_ewei_shop_member;

# 就是计算ims_ewei_shop_member表中openid不同的记录有多少条

2. 在需要返回记录不同的如openid等具体值的时候可以用

SELECT DISTINCT(openid) from ims_ewei_shop_member;

# 返回ims_ewei_shop_member表中不同的openid的具体的值

3. 上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义

# 无论是

SELECT DISTINCT(openid),nickname from ims_ewei_shop_member;

# 还是

SELECT DISTINCT openid,nickname from ims_ewei_shop_member;

# 特别注意:

# 实际上返回的是openid与nickname 同时不相同的结果,也就是DISTINCT同时作用了两个字段,必须得openid和nickname都相同的才被排除了,与我们期望的结果不一样,我们期望的是openid不同被过滤

# 在这种情况下,distinct同时作用了两个字段,openid,nickname

# 这时候可以考虑使用group_concat() 函数来进行排除,不过这个mysql函数是在mysql4.1以上才支持的

# 同时我们还可以利用下面的方式解决以上遇到的歧义问题通过group by分组

用distinct的时候,如果它有索引,mysql会把它转成group by的方式执行

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187261.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • go数组与切片,[]byte转string[通俗易懂]

    go数组与切片,[]byte转string[通俗易懂]数组:同一种数据类型的固定长度序列数组的定义:vara[len]int,比如vara[5]int长度是数组类型的一部分,因此,vara[5]int和vara[10]int是不同的类型funcArray(){ //数组的初始化 varage0[5]int=[5]int{1,2,3} varage1=[5]int{1,2,3,4,5} vara…

    2022年6月22日
    62
  • 2109-全国大学生电子设计竞赛-F-纸张数识别(内含arduino代码以及题解)[通俗易懂]

    2109-全国大学生电子设计竞赛-F-纸张数识别(内含arduino代码以及题解)[通俗易懂]题目:一,任务设计并制作纸张计数显示装置,其组成如图1所示。两块平行极板(极板A、极板B)分别通过导线a和导线b连接到测量显示电路,装置可测量并显示置于极板A与极板B之间的纸张数量。二,要求1,基本要求(1)极板A和极板和极板B上的金属电极部分均为边长50mm0mm±1mm的正方形,导线a和导线b长度均为500mm…

    2022年5月6日
    50
  • shell编程菜鸟教程_java并发编程实战 pdf

    shell编程菜鸟教程_java并发编程实战 pdfShell编程详解   Shell简介 概述Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令,并把它送入内核去执行。内核是Linux系统的心脏,从开机自检就驻留在计算机的内存中,直到计算机关闭为止,而用户的应用程序存储在计算机的硬盘上,仅当需要时才被调入内存。Shell是一种应用程序,当用户登录Linux系统时,Shel

    2022年8月18日
    8
  • spring官网下载[通俗易懂]

    spring官网下载[通俗易懂]1、第一步:打开官网:http://projects.spring.io/2、第二步:点击“SPRINGFRAMEWORK”图片3、第三步:点击“小猫”图标4、第四步:拉到页面中部的位置,找到

    2022年7月1日
    35
  • idea202112激活码下载[最新免费获取]

    (idea202112激活码下载)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSWQi…

    2022年3月25日
    56
  • LDAP概述

    LDAP概述

    2021年8月29日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号