mysql 出现撇号 _Navicat使用教程:如何在MySQL中定位和删除有重复意义的值
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中定位和删除有重复意义的值相关推荐
- PowerPoint 教程:如何在 PowerPoint 中从大纲创建演示文稿?
PowerPoint 教程:如何在 PowerPoint 中从大纲创建演示文稿? 欢迎观看 Microsoft PowerPoint 教程,带大家学习 PowerPoint 的使用技巧,了解如何在 P ...
- dota2html颜色代码,技术向教程 如何在DotA2中使用彩色字体
技术向教程 如何在DotA2中使用彩色字体 编译:M82A1炸菜 如何使用16进制编辑器对DotA2文字就行颜色编辑 需要:十六进制编辑器.记事本.控制台 1.打开steam平台 2.在游戏库中选择D ...
- xd怎么做页面滑动_XD教程 | 如何在XD中制作拖拽手势”
原标题:XD教程 | 如何在XD中制作"拖拽手势" 今日主题:设计一个滑动交互 使用工具:Adobe XD 预计时长:1-2分钟 实用指数:★★★★★ 难度系数:★ 本期教程,我们 ...
- navicat mysql视图_Navicat使用教程:了解关系数据库中的视图
数据库视图是一个虚拟表或逻辑表,由SELECT查询组成.与数据库表非常相似,视图也包含可以查询的行和列.包括MySQL在内的大多数数据库管理系统,甚至都允许您通过视图更新基础表中的数据,但有一些需要注 ...
- mysql建帐号数据库出现反斜线_[MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办
问: 如果密码中包含反斜线,该如何处理呢? 答: 在mysql中,反斜线"\"是有特殊意义的,用于转义,因此如果密码中包含"\",就需要特别注意.有一种一劳永逸 ...
- AI教程 如何在 Illustrator 中创建渐变颜色?
欢迎观看Illustrator教程,小编带大家学习 Illustrator 的基本工具和使用技巧,了解如何在 Illustrator 中使用不同类型的渐变,以及对图稿应用线性和放射性渐变. 在 Ill ...
- mysql 获取下一条记录数,如何在MySQL中查询当前数据上一条和下一条的记录
如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...
- Microsoft Word 教程:如何在 Word 中更改行距?
欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中更改行距. 在 Word 中更改文档中的行距,节省文档的空间或按所需效果 ...
- Microsoft Word 教程:如何在 Word 中更改页边距、创建新闻稿栏?
欢迎观看 Microsoft Word 教程,小编带大家学习 Microsoft Word 的使用技巧,了解如何在 Word 中更改页边距.创建新闻稿栏. 在 Word 中,每个页面会自动显示一英寸的 ...
最新文章
- 爱立信与SK电讯等开展5G测试 将加强VR/AR及云服务连接速度
- ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
- Lucky7(hdu5768)
- 管理自动化:企业上云必由之路
- boost::spirit模块实现从一个包含键/值对的容器中生成输出的测试程序
- DevOps面试问题
- 【tensorflow】张量tensor--数据容器(把它想象成一个数字的水桶)
- 【缓存】redis的基本使用
- 常用功能测试点汇总(转)
- Google 的 Angular 迫使我放弃了 Web 开发
- VS2010创建OCX控件
- zip解压缩jar包,像jar包中add文件
- 微信提示在客户端提交验证_微信中怎么查看我发送的好友验证请求?
- lro gro_斯威夫特:Gro吟M
- 关于用transmac黑苹果制作引导盘无法识别
- 阿里云盾技术强在哪里?轻松防御DDoS、CC攻击 1
- 运动控制专题——PPU
- 住房公积金约定提取业务问答
- 从码农到艺术家——读《禅与摩托车维修艺术》有感
- WLAN技术入门(二):WLAN基本概念