文档章节

mysql数据库去重

降龙罗汉
 降龙罗汉
发布于 2014/10/16 18:41
字数 274
阅读 162
收藏 4

##问题 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的报错。

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

© 著作权归作者所有

降龙罗汉

降龙罗汉

粉丝 217
博文 48
码字总数 17904
作品 0
深圳
程序员
私信 提问
MySQL未来将和云计算碰撞出怎样的火花?

阿里云 MySQL&MariaDB 数据库产品结合开源社区,提供了稳定、可靠、便捷、弹性的在线数据库服务,帮助全球企业客户进行数字化转型。MySQL发展经历了一系列变化,从Sun到Oracle,发展也经过了...

桐碧2018
2018/10/26
0
0
一线互联网公司是怎么处理mysql事务以及隔离级别的?

简介 MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这...

我是你大哥
2018/10/11
32
0
MySql jdbc URL 参数说明

mysql JDBC Driver 常用的有两个,一个是gjt(Giant Java Tree)组织提供的mysql驱动,其JDBC Driver名称(JAVA类名)为:org.gjt.mm.mysql.Driver 现已过时 详情请参见网站:http://www.gj...

JavaGG
2009/08/25
3.2K
2
mysql 数据库中文乱码问题

安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同...

hello_bear
2016/05/04
29
0
mysqli_ping(): MySQL server has gone away

PHP 错误信息 错误级别代号 值 常量 说明 2 E_WARNING 运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。 8 E_NOTICE 运行时通知。表示脚本遇到可能会表现为错误的情况,但是...

aisuhua
09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

以GPS为例,深入浅出讲解射频接收路径的匹配调试流程

RF接收路径的匹配流程----以GPS为例 调Matching前,至少准备两块板子。 一块完整PCB,有上全部零件 : 一块裸版,完全都没上零件 : 匹配前注意事项—铜管 可能很多人忽略这点,但其实这才是...

demyar
28分钟前
11
0
TI AM570x浮点DSP C66x + ARM Cortex-A15开发板的LCD触摸屏接口、LED指示灯

TL570x-EVM是一款由创龙基于SOM-TL570x核心板设计的开发板,它为用户提供了SOM-TL570x核心板的测试平台,用于快速评估SOM-TL570x核心板的整体性能。 TL570x-EVM底板采用沉金无铅工艺的4层板设...

Tronlong创龙
29分钟前
8
0
docker部署springboot项目

前提条件: 1.可以运行jar包的环境 2.机器上已经安装了docker 3.准备部署的springboot的jar包 4.Dockerfile文件 首先在xshell中连接服务器,然后再创建docker_test,在docker_test下创建jar...

故久呵呵
34分钟前
6
0
MaxCompute问答整理之10月

本文是基于本人对MaxCompute产品的学习进度,再结合开发者社区里面的一些问题,进而整理成文。希望对大家有所帮助。 问题一、DataStudio中是否可以通过shell节点调取MaxCompute sql语句? 不...

一肥仔
34分钟前
7
0
GMAT阅读高速解题6招秘籍分享

在做GMAT阅读题时,你是否曾因为文章内容无聊昏昏欲睡?是否看到第二段就神游不知所云?又是否看完问题选择觉得似乎每个都是正确答案?如果上面这些情况曾经发生在你身上,那么你的阅读方式和心...

bole6
36分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部