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的方式执行

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 仪器保养 | 安捷伦DSO-X 2002A示波器自检测/自校准

    仪器保养 | 安捷伦DSO-X 2002A示波器自检测/自校准安捷伦DSO-X2002A示波器自检测、自校准首先上电开机1.按下Utility-服务-Diagnostics-硬件本机自检-前面板自检2.按下Utility-服务-Calibration–按下后盖CAL-开始用户校准-根据提示完成操作感兴趣的话就跟安迪一起来学习吧~仪器保养|安捷伦DSO-X2002A示波器自检测/自校准…

    2022年10月11日
  • python实现矩阵的转置_Python实现矩阵转置的方法分析

    python实现矩阵的转置_Python实现矩阵转置的方法分析本文实例讲述了Python实现矩阵转置的方法。分享给大家供大家参考,具体如下:前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1,2],之后不断的添加新的列表,往原来相应位置添加。例如添加[3,4]使原列表扩充为[[1,3],[2,4]],再添加[5,6]扩充为[[1,3,5],[2,4,6]]等等。其实不动脑筋的话,用个二重循环很容易写出来:def…

  • clion激活码 mac【在线注册码/序列号/破解码】

    clion激活码 mac【在线注册码/序列号/破解码】,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • VMware下载安装教程(虚拟机详细安装教程)

    前面给大家讲过了虚拟机VBox的安装,个人觉得还是没有VMware好用,因为VMware有快照功能,而VBox没有;所以今天就给大家说下VMware的安装,有很多细节方面需要注意,不然很可能安装失败,这里就说下15.5.2的安装。建议不要安装最新版,因为我安装最新版的时候出现了一个情况,就是启动的时候要管理员身份才能打开,而且一直会停留在黑界面,进入不了设置界面,经过多个版本的尝试后,发现还是15.5.2版本的没有出现上述情况。虚拟机的安装1.进入VMware官网,点击左侧导航栏中的下载,再点击图中标

  • 基于Bootstrap的Metro风格模板

    基于Bootstrap的Metro风格模板这几天在看Bootstrap的一些书,这里整理一下书中的一些模板,方便以后使用。1.BootMetrohttp://www.guoxiaoming.com/bootmetro/2.Bootswatchhttp://bootswatch.com/3.MetroUICSS官网:http://metroui.org.ua/中文:http://www.bootcss.com/

    2022年10月29日
  • 【原】Github系列之一:一起做仿天气类应用中的实时模糊效果LiveBlur

    【原】Github系列之一:一起做仿天气类应用中的实时模糊效果LiveBlur

发表回复

您的电子邮箱地址不会被公开。

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