提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:黄竹雯|2019-02-11 09:26:20.000|阅读 845 次
概述:本篇文章介绍了如何在MySQL中使用SELECT DISTINCT消除重复行。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。
MySQL为处理重复数据提供了无数种选择。大多数可以使用一个语句进行更新或删除。但是,有时必须发出多个命令才能完成任务。今天的博客将提供一个解决方案,它使用一个临时表和一个SELECT DISTINCT查询。
需要注意的是,我们今天将在这里创建的临时表与MySQL中的真正临时表不同,因为我们没有向CREATE TABLE 语句中添加临时关键字。
在MySQL中,临时表是一种特殊的表类型,它允许您存储一个临时结果集,您可以在一个会话中重复使用多次。当使用单个SELECT语句查询数据是不可能的或很昂贵时,临时表就派上用场了。像使用TEMPORARY关键字创建的临时表一样,我们的“temporary”表将存储SELECT查询的即时结果,以便我们可以发出一个或多个附加查询来完全处理数据。然后我们将用临时表替换目标表。
在如何删除MySQL(第3部分)博客中具有不同ID的重复行中,我们成功地删除了包含重复名称的行。但是,这仍然会留下ID和名称相同的行,换句话说,整个行都是重复的。例如,我们可以在下面的结果集中看到“22 Jennifer Davis”出现了两次:
id first_name last_name --------------------------------------------------- 10 PENELOPE GUINESS 14 ED CHASE 22 JENNIFER DAVIS 23 JOHNNY LOLLOBRIGIDA 27 BETTE NICHOLSON 34 GRACE MOSTEL 41 NICK WAHLBERG 39 JOE SWANK 23 CHRISTIAN GABLE 22 JENNIFER DAVIS
这是一个理想的临时表方法的候选。
MySQL提供了特殊的CREATE TABLE ... LIKE命令,基于另一个表的定义创建一个空表,包括在原始表中定义的任何列属性和索引。
因此,我们可以基于合并后的演员表创建一个表,如下所示:
-- Create temporary table CREATE TABLE wp.temp_table LIKE wp.amalgamated_actors;
下面是将amalgamated_actors表中的所有数据复制到temp_table中的语句:
INSERT INTO wp.temp_table SELECT DISTINCT * FROM wp.amalgamated_actors;
SELECT DISTINCT子句是删除重复行的关键。
最后,我们需要重命名原始表,以便用临时表替换它,并删除原始表:
-- Rename and drop RENAME TABLE wp.amalgamated_actors TO wp.old_amalgamated_actors, wp.temp_table TO wp.amalgamated_actors; DROP TABLE wp.old_amalgamated_actors;
现在,JENNIFER DAVIS只有一排:
id first_name last_name --------------------------------------------------- 10 PENELOPE GUINESS 14 ED CHASE 22 JENNIFER DAVIS 23 JOHNNY LOLLOBRIGIDA 27 BETTE NICHOLSON 34 GRACE MOSTEL 41 NICK WAHLBERG 39 JOE SWANK 23 CHRISTIAN GABLE
我们原来的amalgamated_actors表已经不复存在了,取而代之的是“temp”表。
在下一篇关于处理重复数据的文章中,我们将使用唯一约束来删除具有重复名称字段的行,不管ID是否重复。
购买Navicat Premium正版授权,请点击“”哟!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢