MySQL 处理重复数据详解数据库
2023-06-13 09:20:09 时间
防止表中出现重复数据
你可以在MySQL数据表中设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。
让我们尝试一个实例:下表中无索引及主键,所以该表允许出现多条重复记录。
CREATE TABLE person_tbl first_name CHAR(20), last_name CHAR(20), sex CHAR(10)
如果你想设置表中字段first_name,last_name数据不能重复,你可以设置双主键模式来设置数据的唯一性, 如果你设置了双主键,那么那个键的默认值不能为NULL,可设置为NOT NULL。如下所示:
CREATE TABLE person_tbl first_name CHAR(20) NOT NULL, last_name CHAR(20) NOT NULL, sex CHAR(10), PRIMARY KEY (last_name, first_name)
另一种设置数据的唯一性方法是添加一个UNIQUE索引,如下所示:
CREATE TABLE person_tbl first_name CHAR(20) NOT NULL, last_name CHAR(20) NOT NULL, sex CHAR(10) UNIQUE (last_name, first_name)统计重复数据
以下我们将统计表中 first_name 和 last_name的重复记录数:
mysql SELECT COUNT(*) as repetitions, last_name, first_name - FROM person_tbl - GROUP BY last_name, first_name - HAVING repetitions
以上查询语句将返回 person_tbl 表中重复的记录数。 一般情况下,查询重复的值,请执行以下操作:
确定哪一列包含的值可能会重复。 在列选择列表使用COUNT(*)列出的那些列。 在GROUP BY子句中列出的列。 HAVING子句设置重复数大于1。例子:
mysql select count(*) as repetitions, devId from singleasset group by devId having repetitions
输出:
+-------------+----------+ | repetitions | devId | +-------------+----------+ | 3 | 30000001 | | 12 | 30000002 | +-------------+----------+ 2 rows in set (0.00 sec)过滤重复数据
如果你需要读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。
mysql SELECT DISTINCT last_name, first_name - FROM person_tbl;
你也可以使用 GROUP BY 来读取数据表中不重复的数据:
mysql SELECT last_name, first_name - FROM person_tbl - GROUP BY (last_name, first_name);统计不重复字段的数量
select count(distinct devId) as num from singleasset
以不重复字段为条件,获取所有
select * from singleasset group by devId limit 0,10 "select * from singleasset where assetName like %{0}% or devId like %{0}% group by devId".format(keyword)
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/3985.html
mysql相关文章
- 11-物联网开发终端管理篇-java从MQTT获取设备数据,并通过Druid连接池把数据写入MySQL数据库(Linux系统,宝塔)
- MySQL Error number: MY-013668; Symbol: ER_NO_ERROR_LOG_PARSER_CONFIGURED; SQLSTATE: HY000 报错 故障修复 远程处理
- linux下MySQL停止和重启详解数据库
- MySQL:掌握数据库技术的关键(mysql数据库技术)
- MySQL:一种体积小、性能卓越的数据库(mysql数据库的优点)
- MySQL最大并发量:一个窥视(mysql并发量是多少)
- Mysql 停止触发器的简单操作指南(mysql停止触发器)
- MySQL数据库无法连接:排查与解决方法(mysql数据库打不开)
- MySQL 中更换空值的方法(mysql空值替换)
- 实战经验:MySQL 如何修改表格数据(mysql修改表格数据)
- MySQL中插入字符串的技巧(mysql插入字符串)
- 控制MySQL数据库并发控制实践(mysql数据库并发)
- MySQL中的二进制数据存储研究(mysql二进制数据)
- 设置MySQL帐户密码的过期时间(mysql密码过期时间)
- MySQL:重建数据库的简单操作(mysql重建数据库)
- 里MySQL安装在何处?(mysql装在哪)
- MySQL更新无效,如何解决?(mysql不能更新)
- MySQL数据库日常维护:步步为营(mysql数据库日常维护)
- MySQL联合查询实现同时查询两个表数据(mysql同时查询两个表)
- MySQL字符串转义技巧简单介绍(mysql字符串转义)
- 期Java开发高效配置MySQL长期支撑(mysql java 长)
- 如何使用MySQL清空表中的数据?(mysql清空表的数据库)
- MySQL相似度算法提高匹配准确性(mysql 相似度)
- MySQL中实现多数据库管理(mysql多个数据库)
- 如何使用MySQL查找重复数据(mysql查找数据重复)
- Mysql服务运维:成就一个稳定的互联网世界(mysql 运维)
- MySQL连接配置实现数据库快速访问(mysql 连接 配置)
- MySQL数据库如何实现优化?(mysql数据库怎么优化)
- MySQL数据库中,主键的概念及作用(mysql中主键的概念)
- MySQL PDO数据库操作的基础和经验(ci mysql pdo)
- MySQL 数据库中的分组计数和排名操作技巧(mysql中分组计数排名)
- MySQL如何实现两条数据的比较(mysql 两条数据)
- MySQL中使用Event定时执行SQL操作(mysql下的event)
- MySQL中插入语句遇到逗号问题怎么办(mysql 不能插入逗号)