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

mysql去重的关键字

作者:徒醉了清风   发布日期:2025-08-12   浏览:101

-- 使用 DISTINCT 关键字去除重复行
SELECT DISTINCT column1, column2, ...
FROM table_name;

-- 示例:从表 `employees` 中获取所有不同的部门名称
SELECT DISTINCT department
FROM employees;

-- 使用 GROUP BY 关键字去除重复行并进行聚合操作
SELECT column1, column2, ..., aggregate_function(column)
FROM table_name
GROUP BY column1, column2, ...;

-- 示例:从表 `orders` 中获取每个客户的订单总数
SELECT customer_id, COUNT(order_id) AS order_count
FROM orders
GROUP BY customer_id;

-- 使用子查询和 ROW_NUMBER() 函数去除重复行(适用于 MySQL 8.0+)
WITH CTE AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY column1, column2 ORDER BY some_column) AS row_num
    FROM table_name
)
SELECT *
FROM CTE
WHERE row_num = 1;

-- 示例:从表 `logs` 中删除重复的记录,保留最新的记录
WITH CTE AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY user_id, action ORDER BY timestamp DESC) AS row_num
    FROM logs
)
DELETE FROM logs
WHERE id IN (
    SELECT id
    FROM CTE
    WHERE row_num > 1
);

解释说明:

  1. DISTINCT:用于去除查询结果中的重复行。它可以在多个列上使用,确保这些列组合的唯一性。
  2. GROUP BY:不仅可以去除重复行,还可以对数据进行分组,并结合聚合函数(如 COUNT, SUM 等)进行统计分析。
  3. ROW_NUMBER():在 MySQL 8.0 及以上版本中可用,通过窗口函数为每一组数据分配唯一的行号,从而可以轻松地选择或删除重复行。

上一篇:mysql deadlock

下一篇:mysql 位运算

大家都在看

mysqlavg函数保留小数

mysql显示表内容

mysql经纬度距离计算

存储过程mysql

mysql with语句

mysql时间加减

brew 启动mysql

unsigned在mysql中是什么意思

mysql 插入更新

mysql代码

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

Laravel 中文站