MySQL: 去重查询

打印 上一主题 下一主题

主题 527|帖子 527|积分 1581

一、数据库表创建

  1. /*
  2. Navicat Premium Data Transfer
  3. Source Server         : localhost
  4. Source Server Type    : MySQL
  5. Source Server Version : 80032
  6. Source Host           : localhost:3306
  7. Source Schema         : mt-database
  8. Target Server Type    : MySQL
  9. Target Server Version : 80032
  10. File Encoding         : 65001
  11. Date: 22/08/2024 09:30:49
  12. */
  13. SET NAMES utf8mb4;
  14. SET FOREIGN_KEY_CHECKS = 0;
  15. -- ----------------------------
  16. -- Table structure for tb_user
  17. -- ----------------------------
  18. DROP TABLE IF EXISTS `tb_user`;
  19. CREATE TABLE `tb_user`  (
  20.   `id` int NOT NULL AUTO_INCREMENT,
  21.   `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  22.   `age` int NULL DEFAULT NULL,
  23.   `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
  24.   `score` decimal(10, 2) NULL DEFAULT NULL,
  25.   `rq` date NULL DEFAULT NULL,
  26.   PRIMARY KEY (`id`) USING BTREE
  27. ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
  28. -- ----------------------------
  29. -- Records of tb_user
  30. -- ----------------------------
  31. INSERT INTO `tb_user` VALUES (1, '张三', 12, '0', 52.00, '2024-08-01');
  32. INSERT INTO `tb_user` VALUES (2, '张三', 12, '0', 68.00, '2024-08-07');
  33. INSERT INTO `tb_user` VALUES (3, '张三', 12, '0', 62.00, '2024-08-17');
  34. INSERT INTO `tb_user` VALUES (4, '李四', 12, '0', 66.00, '2024-08-21');
  35. INSERT INTO `tb_user` VALUES (5, '王五', 35, '1', 10.00, '2024-08-21');
  36. SET FOREIGN_KEY_CHECKS = 1;
复制代码
二、根据全部字段的去重查询

  1. SELECT DISTINCT * FROM tb_user;
复制代码
三、根据某些字段的去重查询(不思量查询其他字段)

  1. SELECT DISTINCT name FROM tb_user;
复制代码
  1. SELECT name FROM tb_user GROUP BY name;
复制代码
四、根据某些字段的去重查询(思量查询其他字段)

  1. SELECT name,GROUP_CONCAT(age) age FROM tb_user GROUP BY name;
复制代码
五、根据某些字段的去重查询,查询重复项以外的全部数据,如果要查询最新数据则利用max

  1. select * from tb_user where id in (select min(id) minid from tb_user group by name)
复制代码
六、根据某些字段的去重查询,查询重复项

  1. select * from tb_user where id not in (select min(id) minid from tb_user group by name)
复制代码
七、删除重复数据

  1. delete from tb_user where id in (select * from (select id from tb_user where id not in (select min(id) from tb_user group by name)) a)
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表