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)
上一篇 2022年10月1日 上午7:00
下一篇 2022年10月1日 上午7:16


相关推荐

  • 出现Permission denied的解决办法(750权限谨慎使用)

    出现Permission denied的解决办法(750权限谨慎使用)提示Permissiondenied解决的办法:$sudochmod-R777某一目录其中-R是指级联应用到目录里的所有子目录和文件777是所有用户都拥有最高权限

    2022年6月14日
    77
  • 安装虚拟机不支持i686 cpu的解决办法

    安装虚拟机不支持i686 cpu的解决办法作者:朱金灿来源:http://blog.csdn.net/clever101在thinkpad笔记本上安装ubuntu-14.04-desktop虚拟机,提示:thiskernelrequresanx86-64cpu,butonlydetectedani686cpu,如图:网上搜了下,是电脑的bios的虚拟化选项没有打开的缘…

    2022年6月4日
    103
  • 2020年Android面试题汇总(初级)-简书_android经典面试题

    2020年Android面试题汇总(初级)-简书_android经典面试题Android面试题及答案(2022年最新Android面试题大全带答案),发现网上很多Android面试题整理都没有答案,所以花了很长时间搜集,本套Android面试题大全,Android面试题大汇总,有大量经典的Android面试题以及答案,包含Android语言常见面试题、Android工程师高级面试题及一些大厂Android开发面试宝典,面试经验技巧等,应届生,实习生,企业工作过的,都可参考学习!这套Android面试题汇总大全,希望对大家有帮助哈~此面试题合集分为9个部分:Java基础、And

    2022年8月28日
    5
  • Mybatis:了解SqlSessionTemplate[通俗易懂]

    Mybatis:了解SqlSessionTemplate[通俗易懂]读完这篇文章,你将会知道:SqlSessionTemplate和SqlSessionManager有什么不同。 SqlSessionTemplate如何实现线程安全。 SqlSessionTemplate怎么和数据库打交道。目录SqlSessionTemplate和SqlSessionManager有什么不同。SqlSessionTemplate如何实现线程安全…

    2022年5月31日
    47
  • Mars3D开发基础学习:3DTiles三维模型

    Mars3D开发基础学习:3DTiles三维模型上一节我们介绍了 glTF 的主要数据结构以及 Mars3D 是如何对其进行加载的 这一节我们来介绍一下 glTF 的升级版 3DTiles 也是目前 Mars3D 在加载海量三维模型数据方面必须采用的一种数据格式 1 3DTiles 介绍 2016 年 Cesium 团队借鉴传统 2DGIS 的地图规范 WMTS 借鉴图形学中的层次细节模型 打造出大规模的三维数据标准 3d Tiles 中文译名 三维瓦片 它在模型上利用了 gltf 渲染快的特点 对大规模的三维数据进行组织 包括层次细节模型 模型的属性数据

    2026年3月17日
    3
  • url转码 java_javaurlencode转码

    url转码 java_javaurlencode转码什么是URL转码不管是以何种方式传递url时,如果要传递的url中包含特殊字符,如想要传递一个+,但是这个+会被url会被编码成空格,想要传递&,被url处理成分隔符。尤其是当传递的url是经过Base64加密或者RSA加密后的,存在特殊字符时,这里的特殊字符一旦被url处理,就不是原先你加密的结果了。url特殊符号及对应的编码: 符号 url中的含义 编码 + URL中+号表示..

    2025年7月10日
    6

发表回复

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

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