mysql数据库去重[通俗易懂]

mysql数据库去重[通俗易懂]2019独角兽企业重金招聘Python工程师标准>>>…

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

Jetbrains全系列IDE稳定放心使用

##问题 mysql数据库表osc_table_a中出现了重复记录,需要通过sql来去重,仅留下最早插入的记录。

表osc_table_a:

id     row1     row2    row3

1      123        abc     *****

2      123        def     *****

3      123        abc     *****

4      456        xyz     *****  

5      456        xyz     *****

去重结果 id row1 row2 row3

1      123        abc     *****

2      123        def      *****

4      456        xyz      *****

##完整sql

<!-- lang: sql -->
DELETE t FROM osc_table_a t WHERE
(
osc_table_a.row1,
osc_table_a.row2
)IN(
SELECT a.row1, a.row2 FROM(
        SELECT * FROM osc_table_a tmp1 GROUP BY tmp1.row1, tmp1.row2 HAVING COUNT(tmp1.id)> 1
 ) a
)
AND t.id NOT IN(
SELECT b.id FROM (
	    SELECT MIN(tmp2.id) id FROM osc_table_a tmp2 GROUP BY tmp2.row1, tmp2.row2 HAVING COUNT(tmp2.id)> 1
) b
);

##问题

  1. mysql中DELETE使用别名问题

    如果 DELETE t FROM osc_table_a t WHERE…… 写为 DELETE FROM osc_table_a t WHERE…… 会报语法错误

     * SELECT * FROM osc_table_a b;(正确,可以使用表别名)
     * DELETE FROM osc_table_a b;(错误)
     * DELETE b FROM osc_table_a b;(正确)
    
  2. [Err] 1093 – You can’t specify target table ‘osc_table_a’ for update in FROM clause

    如果去掉 SELECT a.row1, a.row2 FROM(……)a 或者 SELECT b.id FROM (…..)b的报错。

    作用和将查询结果先存入临时表,然后取出来是一样的效果。

转载于:https://my.oschina.net/ijustdoit/blog/332993

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

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

(0)
上一篇 2022年10月1日 下午8:46
下一篇 2022年10月1日 下午9:00


相关推荐

  • java中使用uuid函数_java生成随机数

    java中使用uuid函数_java生成随机数什么是UUID?UUID是UniversallyUniqueIdentifier的缩写,它是在一定的范围内(从特定的名字空间到全球)唯一的机器生成的标识符。UUID具有以下涵义:经由一定的算法机器生成为了保证UUID的唯一性,规范定义了包括网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等元素,以及从这些元素生成UUID的算法。UUID的复杂特性在保证了其唯一性的同…

    2026年2月19日
    5
  • 第1坑 pycharm里的python解释器路径问题

    第1坑 pycharm里的python解释器路径问题我的 python 入门踩坑记录 成功安装 python3 并运行了第一条代码后 又继续下载安装了 pycharm 一打开 pycharm 就疯狂弹出 ModifySetup 通过网上的搜索 得知了问题所在 但是因为不熟悉 所以把两个软件都卸载了重新安装 安装 python 的时候 学聪明了 自己选择了安装路径 并且改了个简单的名字 好找 再到安装 pycharm 的时候 听从建议 把它装到了 D 盘 因为需要占较大内存空间 重新安装之后 pycharm 的路径选择那里自动出现了 python3 的路径 接下来就直接选择 然后

    2026年3月26日
    2
  • python进阶(25)协程「建议收藏」

    python进阶(25)协程「建议收藏」协程的定义协程(Coroutine),又称微线程,纤程。(协程是一种用户态的轻量级线程)作用:在执行A函数的时候,可以随时中断,去执行B函数,然后中断B函数,继续执行A函数(可以自动

    2022年8月7日
    7
  • 电磁兼容实验室「建议收藏」

    电磁兼容实验室「建议收藏」南京信息工程大学电磁兼容实验室南京信息工程大学电子与信息工程学院[1]电磁兼容实验室依托“江苏省传感网与现代气象装备”优势学科,‘江苏省信息与通信工程’优势学科,“江苏省气象探测与信号处理重点实验室”,“江苏省气象传感网技术工程中心”,成立于2012年10月[2]。电磁兼容暗室设计频率范围:10kHz-18GHz;暗室经过203所验收合格。可以满足国军标151A/151B-2013军标9项测试标准,民标多项测试,具体测试项目如下:GJB151B测试项目:25Hz~10kHz电源线传导发…

    2025年7月26日
    5
  • 面试官问你HTTP状态码,你敢答吗?

    面试官问你HTTP状态码,你敢答吗?听说面试会问 HTTP 状态码 相比那些神仙操作 这个记忆性的知识点准备起来比较容易 不应该成为丢分项

    2026年3月19日
    2
  • 【云原生】微服务之Feign的介绍与使用

    【云原生】微服务之Feign的介绍与使用本文介绍了微服务中 Feign 的使用 正在学习 Feign 或者准备学习的朋友看过来哟

    2026年3月16日
    3

发表回复

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

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