当前位置:网站首页>MySQL 常用命令

MySQL 常用命令

2022-07-23 09:39:00 云胡同学

一、概述

总结一些常用的命令

二、命令

2.1 复制旧表到新表

CREATE TABLE new_table_name
SELECT * FROM old_table_name;

2.2 删除表中数据

delete from table_name;

2.3 给结果添加编号

SET @row_number = 0;
SELECT (@row_number := @row_number + 1 ) AS num
FROM table_name

2.4 查询分组的最小 id

SELECT min(book_id), book_name, book_type 
FROM t_book 
GROUP BY book_name, book_type # 根据两个字段进行分组

2.5 删除重复记录,保留最小索引的那一个

t_test 表中数据:

idbook_namebook_type
1失败者的春秋noval
2战国歧途noval
3失败者的春秋noval
4战国歧途noval
5失败者的春秋essay

重复记录用两个字段进行唯一确定。

因此 id 为 1 的记录与 id 为 3 的记录是重复记录,与 id 为 5 的记录不是重复记录,因为他们的 book_type 不同, 一个是 noval,一个是 essay。

因此我们想得到的结果是删除 3、4 两行记录,他们重复了。

DELETE 
FROM   t_test
WHERE  (book_name, book_type) IN (
       SELECT *
       FROM   (SELECT   book_name, book_type
               FROM     t_test
               GROUP BY book_name, book_type
               HAVING   count(*) > 1) A)
AND   id  NOT IN (
        SELECT *
        FROM   (SELECT   min(id)
                FROM     t_test
                GROUP BY book_name, book_type
                HAVING   count(*) > 1) B)
ORDER BY book_name, book_type;
  1. 先获取分组后的最小的 id,
  2. 删除重复记录并且这个 id 不能是最小的 id,因此就保留下最小的 id 的记录。

结果:

idbook_namebook_type
1失败者的春秋noval
2战国歧途noval
5失败者的春秋essay
原网站

版权声明
本文为[云胡同学]所创,转载请带上原文链接,感谢
https://yunhu.blog.csdn.net/article/details/125216157