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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • App2sd功能和Asec文件

    App2sd功能和Asec文件本文原创作者:CloudChou.欢迎转载,请注明出处和本文链接1.asec文件是什么?asec的全称是AndroidSecureExternalCaches以前app安装好之后,app和app的数据都是放在data分区,而data分区经常存储空间不够,于是从Android2.2,Froyo版本开始,Android开始支持App2Sd功能,所谓的App2Sd就是安装ap

    2022年7月20日
    10
  • 微机原理课程设计电梯控制系统_列举一个计算机控制系统的应用实例

    微机原理课程设计电梯控制系统_列举一个计算机控制系统的应用实例1、针对一个具有大纯时延时间的一阶惯性环节(G(s)=K*e-θs/(Ts+1))温度控制系统和给定的系统性能指标,(工程要求相角裕度为30~60,幅值裕度>6dB);要求测量范围-50℃~200℃,测量精度0.5%,分辨率0.2℃;2、书面设计一个计算机控制系统的硬件布线连接图,并转化为系统结构图;3、选择一种控制算法并借助软件工程知识编写程序流程图;4、用MATLAB和SIMULINK进…

    2022年10月4日
    0
  • 基于springboot的websocket聊天室[通俗易懂]

    基于springboot的websocket聊天室[通俗易懂]一、概述1.Http2.WebSocket3.Socket4.WebSocket和Http5.WebSocket和Socket6.长连接,短连接7.http和websocket的

    2022年8月16日
    3
  • python3变量命名规则_python 变量命名规则

    python3变量命名规则_python 变量命名规则原博文2020-05-1410:53−python标识符命名规则:1,标识符只能包含大、小写字母、数字、下划线“_”,并且不能以数字开头2,标识符不能与python关键字相同,但可以包含3,标识符不能包含空格tips:a,python的标识符区分大小写,如变量number与变量Number表示不同的变量…相关推荐2019-09-2821:13−Pythonpython是一种跨平台的计…

    2022年6月22日
    55
  • C++中的seekg函数

    C++中的seekg函数seekg对输入文件定位,有两个参数:*第一个:表示偏移量,可正可负,正表示向后,负表示向前*第二个:偏移的基地址myFile.seekg(sizeof(Record),ios::beg);//其中Record为一个类,ios::beg为输入流的开始;myFile.read((char*)&record,sizeof(record));//函数原型istre

    2022年6月6日
    70
  • 2022年最新前端面试题,持续更新「建议收藏」

    2022年最新前端面试题,持续更新「建议收藏」2022年最新前端面试题适合初/中级前端开发工程师

    2022年10月17日
    0

发表回复

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

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