Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

mysql去重复 保留一条

作者:城若幻影   发布日期:2025-05-27   浏览:92

-- 假设我们有一个名为 'users' 的表,其中包含重复的记录,我们希望删除重复的记录,只保留一条。
-- 表结构如下:
-- id INT PRIMARY KEY,
-- name VARCHAR(50),
-- email VARCHAR(100)

-- 步骤 1: 创建一个临时表来存储唯一的数据
CREATE TEMPORARY TABLE temp_users AS
SELECT *
FROM users
WHERE 1=0;

-- 步骤 2: 插入唯一的数据到临时表中
INSERT INTO temp_users (id, name, email)
SELECT MIN(id), name, email
FROM users
GROUP BY name, email;

-- 步骤 3: 删除原始表中的所有数据
DELETE FROM users;

-- 步骤 4: 将临时表中的唯一数据插入回原始表
INSERT INTO users (id, name, email)
SELECT * FROM temp_users;

-- 步骤 5: 删除临时表
DROP TEMPORARY TABLE temp_users;

解释说明:

  1. 创建临时表:我们首先创建一个空的临时表 temp_users,用于存储去重后的数据。
  2. 插入唯一数据:通过 GROUP BYMIN(id) 来确保每个 nameemail 组合只保留最小的 id 记录。
  3. 清空原始表:删除原始表 users 中的所有数据。
  4. 恢复唯一数据:将临时表中的唯一数据重新插入到原始表中。
  5. 清理临时表:最后删除临时表,完成去重操作。

这种方法可以确保在删除重复记录时,只保留每组记录中的一条。

上一篇:mysql 自增函数

下一篇:mysql 转换成字符串

大家都在看

mysqlavg函数保留小数

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql.user

python mysql update

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站