Navicat Premium是一个可连接多种数据库的管理工具,它可以让你以单一程序同时连接到MySQL、Oracle及PostgreSQL数据库,让管理不同类型的数据库更加的方便。

DBA最大的麻烦之一是处理重复数据。不管我们如何防范,重复数据总是会设法进入到表格。重复数据是一个大问题,因为它会影响应用程序视图(每个项都应该是唯一的)、扭曲统计信息,在严重情况下还会增加服务器开销。

在本技巧中,我们将学习如何识别MySQL中的重复数据,以及如何删除它们而不删除宝贵的有效数据。

重复类型

您将遇到的大多数重复记录是两种不同类型之一:重复含义和非唯一键。在本篇文章中,我们将处理重复含义;在下篇文章中,我们将处理非唯一键。

当副本不是副本时

重复意义是最常见的重复类型。在这种情况下,两个或多个字段的内容不相同,但它们的含义是相同的。你可以把它看作是语义上的重复数据。

考虑下表摘录:

1

2

3

4

5

6

7

movie_name  media

---------------------------

ACADEMY DINOSAUR    Theatre

ACE GOLDFINGER  Television

ADAPTATION HOLES    Theatre

AFFAIR PREJUDICE    Theatre

AFRICAN EGG TV

在媒体专栏中,“Television”和“TV”两个词条的含义相同,但表达方式不同。这个问题通常是由使用自由文本输入引起的,有限的下拉列表是更好的选择。

这种类型的复制处理起来非常困难,因为不能使用select distinct排除重复项。

有两种方法可以解决这个问题:

1.使用replace()选择数据,将不需要的值替换为希望看到的值:

1

2

3

SELECT DISTINCT movie_name,

REPLACE(media,"TV","TELEVISION")as media,

FROM films;

2.更新实际表数据。下面是一个声明,用首选的“TELEVISION”值更新“TV”的所有实例:

1

2

3

UPDATE films

SET media =REPLACE(media,"TV","TELEVISION")

WHERE media ="TV";

下面是一个真实的例子!

一些不需要的卷曲撇号进入了数据。注意“O'BRIEN”和“O'BRIEN”条目:

1

2

3

4

5

6

7

first_name  last_name

---------------------

PENELOPE    GUINESS

CONAN   O'BRIEN

ED  CHASE

JENNIFER    DAVIS

CONAN   O'BRIEN

我们可以像上面那样处理这个问题:

1.使用replace()选择数据,用常规的单引号替换大撇号,这样我们就可以始终处理相同的字符:

1

2

3

4

SELECT DISTINCT first_name,

REPLACE(last_name,"'","'")as last_name,

FROM actors

WHERE REPLACE(last_name,"'","'")like "O'BRIEN";

2.更新实际表数据。此语句用常规单引号更新姓氏列中的所有撇号:

1

2

3

UPDATE actors

SET last_name =REPLACE(last_name,"'","'")

WHERE last_namelike "%'%";

结论

重复记录、双精度、冗余数据、重复行;无论您如何称呼它们,它们都是DBA生命中最大的缺陷之一。然而,重要的是要定期清除它们,以免产生错误的统计数据并混淆与数据库交互的用户。

mysql 出现撇号 _Navicat使用教程:如何在MySQL中定位和删除有重复意义的值相关推荐

  1. PowerPoint 教程:如何在 PowerPoint 中从大纲创建演示文稿?

    PowerPoint 教程:如何在 PowerPoint 中从大纲创建演示文稿? 欢迎观看 Microsoft PowerPoint 教程,带大家学习 PowerPoint 的使用技巧,了解如何在 P ...

  2. dota2html颜色代码,技术向教程 如何在DotA2中使用彩色字体

    技术向教程 如何在DotA2中使用彩色字体 编译:M82A1炸菜 如何使用16进制编辑器对DotA2文字就行颜色编辑 需要:十六进制编辑器.记事本.控制台 1.打开steam平台 2.在游戏库中选择D ...

  3. xd怎么做页面滑动_XD教程 | 如何在XD中制作拖拽手势”

    原标题:XD教程 | 如何在XD中制作"拖拽手势" 今日主题:设计一个滑动交互 使用工具:Adobe XD 预计时长:1-2分钟 实用指数:★★★★★ 难度系数:★ 本期教程,我们 ...

  4. navicat mysql视图_Navicat使用教程:了解关系数据库中的视图

    数据库视图是一个虚拟表或逻辑表,由SELECT查询组成.与数据库表非常相似,视图也包含可以查询的行和列.包括MySQL在内的大多数数据库管理系统,甚至都允许您通过视图更新基础表中的数据,但有一些需要注 ...

  5. mysql建帐号数据库出现反斜线_[MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办

    问: 如果密码中包含反斜线,该如何处理呢? 答: 在mysql中,反斜线"\"是有特殊意义的,用于转义,因此如果密码中包含"\",就需要特别注意.有一种一劳永逸 ...

  6. AI教程 如何在 Illustrator 中创建渐变颜色?

    欢迎观看Illustrator教程,小编带大家学习 Illustrator 的基本工具和使用技巧,了解如何在 Illustrator 中使用不同类型的渐变,以及对图稿应用线性和放射性渐变. 在 Ill ...

  7. mysql 获取下一条记录数,如何在MySQL中查询当前数据上一条和下一条的记录

    如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...

  8. Microsoft Word 教程:如何在 Word 中更改行距?

    欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中更改行距. 在 Word 中更改文档中的行距,节省文档的空间或按所需效果 ...

  9. Microsoft Word 教程:如何在 Word 中更改页边距、创建新闻稿栏?

    欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中更改页边距.创建新闻稿栏. 在 Word 中,每个页面会自动显示一英寸的 ...

最新文章

  1. 爱立信与SK电讯等开展5G测试 将加强VR/AR及云服务连接速度
  2. ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
  3. Lucky7(hdu5768)
  4. 管理自动化:企业上云必由之路
  5. boost::spirit模块实现从一个包含键/值对的容器中生成输出的测试程序
  6. DevOps面试问题
  7. 【tensorflow】张量tensor--数据容器(把它想象成一个数字的水桶)
  8. 【缓存】redis的基本使用
  9. 常用功能测试点汇总(转)
  10. Google 的 Angular 迫使我放弃了 Web 开发
  11. VS2010创建OCX控件
  12. zip解压缩jar包,像jar包中add文件
  13. 微信提示在客户端提交验证_微信中怎么查看我发送的好友验证请求?
  14. lro gro_斯威夫特:Gro吟M
  15. 关于用transmac黑苹果制作引导盘无法识别
  16. 阿里云盾技术强在哪里?轻松防御DDoS、CC攻击 1
  17. 运动控制专题——PPU
  18. 住房公积金约定提取业务问答
  19. 从码农到艺术家——读《禅与摩托车维修艺术》有感
  20. WLAN技术入门(二):WLAN基本概念

热门文章

  1. 第三篇 香橙派的外设开发基础(中)— 串口篇
  2. 互联网快讯:中国联通推出5G视频热线;极米Z6X Pro、极米H3S持续热销;丰速运与云快充达成合作
  3. 基于用户的音乐推荐平台
  4. 国际大会演讲ppt_2008年上半年会议演讲时间表
  5. 现货黄金与白银现货的区别
  6. Poseidon Foundation:利物浦努力至2020年底成为首个“气候友好型”城市
  7. 多家技术公司喊停的人脸识别业务,被这家波兰网站玩火了!
  8. #navigation
  9. 照片拼图制作怎么弄?这几个方法或许能帮到你
  10. Mongodb修改器