『 MySQL数据库 』插入查询结果
文章目录
- 🎟️ 前言
- 🎟️ 创建一张结构相同的表
- 🎟️ 表内插入查询结果
- 🎫 对表内数据进行去重
- 🎫 配合ORDER BY排序后以及LIMIT分页对数据进行插入
🎟️ 前言

在MySQL数据库中不仅可以直接根据字段类型等对数据进行插入以外还可以插入以类似SELECT FROM语句筛选查询出的字段;
通过该手段可以配合表的RENAME操作可以对表进行一个拷贝或者是去重等操作;
存在一张表(distinct_table):
mysql> select * from distinct_table;
+----+------+
| id | name |
+----+------+
| 1 | aaa |
| 2 | bbb |
| 1 | aaa |
| 2 | bbb |
| 1 | aaa |
| 3 | ccc |
+----+------+
🎟️ 创建一张结构相同的表

语句:
CREATE TABLE [IF NOT EXISTS] table_name1 LIKE table_name2;
可以利用该命令创建一个表结构相同的表,其中table_name1为原表,table_name2为新表;
利用 SHOW CREATE TABLE查看该章中distinct_table的表的详细表结构:
mysql> show create table distinct_table\G -- 查看详细表结构
*************************** 1. row ***************************Table: distinct_table
Create Table: CREATE TABLE `distinct_table` (`id` int(11) NOT NULL COMMENT 'id',`name` varchar(20) NOT NULL COMMENT 'name字段'
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
- 使用
CREATE TABLE [IF NOT EXISTS]... LIKE ...创建一张表结构相同的表:
从该操作可以看出所创建的表结构除了表名与原表不同以外其表结构与原表的表结构相同;mysql> create table if not exists tmp_table1 like distinct_table; -- 创建一张表明为tmp_table1且表结构与distinct_table表相同的表 Query OK, 0 rows affected (0.00 sec)mysql> show tables; -- 显示当前数据库中表 +-----------------+ | Tables_in_test2 | +-----------------+ | distinct_table | | tmp_table1 | +-----------------+ 2 rows in set (0.00 sec)mysql> show create table tmp_table1 \G -- 显示tam_table1表的详细表结构 *************************** 1. row ***************************Table: tmp_table1 Create Table: CREATE TABLE `tmp_table1` (`id` int(11) NOT NULL COMMENT 'id',`name` varchar(20) NOT NULL COMMENT 'name字段' ) ENGINE=MyISAM DEFAULT CHARSET=utf8 1 row in set (0.00 sec)
🎟️ 表内插入查询结果

🎫 对表内数据进行去重
由于在MySQL中没有可以直接对表进行去重的语句,但是在MySQL中存在对查询结果进行去重的语句;
所以可以根据SELECT DISTINCT对应的结果去重配合INSERT INTO完成对表整体的去重:
- 创建结构相同的表;
mysql> create table if not exists tmp_table1 like distinct_table; -- 创建一张表明为tmp_table1且表结构与distinct_table表相同的表
Query OK, 0 rows affected (0.00 sec)
mysql> show create table tmp_table1 \G -- 显示tam_table1表的详细表结构
*************************** 1. row ***************************Table: tmp_table1Create Table: CREATE TABLE `tmp_table1` (`id` int(11) NOT NULL COMMENT 'id',`name` varchar(20) NOT NULL COMMENT 'name字段'
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)
- 使用
SELECT DISTINCT对查询结果进行去重:
mysql> insert into tmp_table1 select * from tmp_table2 order by id desc limit 3;
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0mysql> select * from tmp_table1;
+------+------+
| id | name |
+------+------+
| 1 | aaa |
| 2 | bbb |
| 3 | ccc |
| 1000 | lll |
| 100 | ppp |
| 99 | qqq |
+------+------+
6 rows in set (0.00 sec)
- 使用
INSERT INTO将该筛选出来的结果插入至tmp_table1中;
mysql> insert into tmp_table1 select distinct * from distinct_table; -- 插入表内数据Query OK, 3 rows affected (0.00 sec)Records: 3 Duplicates: 0 Warnings: 0mysql> select * from tmp_table1; -- 显示表内数据+----+------+| id | name |+----+------+| 1 | aaa || 2 | bbb || 3 | ccc |+----+------+3 rows in set (0.00 sec)
- 最后使用
RENAME对表进行重命名即可;
🎫 配合ORDER BY排序后以及LIMIT分页对数据进行插入

以上面的tmp_table1表为例;
假设存在一张新表(tmp_table2):
mysql> select * from tmp_table2;
+------+------+
| id | name |
+------+------+
| 1 | aaa |
| 2 | bbb |
| 3 | ccc |
| 99 | qqq |
| 100 | ppp |
| 1000 | lll |
| 20 | mmm |
| 79 | ooo |
+------+------+
同时该新表的表结构与tmp_table1表结构相同;
此时向表tmp_table1中插入tmp_table2表中id前3大的数据;
-
对该操作进行分析:
- 插入
tmp_table2表中的数据; id字段前3大的数据表示需要ORDER BY对数据进行排序,且为降序;- 需要前n个数据所以需要使用
LIMIT对数据结果进行分页;
- 插入
-
对上述分析使用
SELECT进行筛选:mysql> select * from tmp_table2 order by id desc; -- 显示出排序后的数据; +------+------+ | id | name | +------+------+ | 1000 | lll | | 100 | ppp | | 99 | qqq | | 79 | ooo | | 20 | mmm | | 3 | ccc | | 2 | bbb | | 1 | aaa | +------+------+ 8 rows in set (0.00 sec)mysql> select * from tmp_table2 order by id desc limit 3; -- 显示出排序后的数据并使用limit进行分页; +------+------+ | id | name | +------+------+ | 1000 | lll | | 100 | ppp | | 99 | qqq | +------+------+ 3 rows in set (0.00 sec) -
通过上述操作配合
INSERT INTO对数据进行插入;mysql> insert into tmp_table1 select * from tmp_table2 order by id desc limit 3; Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0mysql> select * from tmp_table1; +------+------+ | id | name | +------+------+ | 1 | aaa | | 2 | bbb | | 3 | ccc | | 1000 | lll | | 100 | ppp | | 99 | qqq | +------+------+ 6 rows in set (0.00 sec)
相关文章:
『 MySQL数据库 』插入查询结果
文章目录 🎟️ 前言🎟️ 创建一张结构相同的表🎟️ 表内插入查询结果🎫 对表内数据进行去重🎫 配合ORDER BY排序后以及LIMIT分页对数据进行插入 🎟️ 前言 在MySQL数据库中不仅可以直接根据字段类型等对数据…...
【笔记】小白学习电路维修
学习视频(b站):从0开始学电路 从0开始学电路维修 p1 黄色长方体元件P2 故障率最高的元件p3带芯铜丝线圈是什么区分电感和变压器接入电路分析: p4 交流和直流分界线整流桥接线整流桥故障判断 带色环的不一定是电阻 p1 黄色长方体元…...
linux简述进程
目录 进程 一个正在运行的程序,一个程序运行至少要启动一个进程,主进程 子进程 一个进程正常运行,至少要启动一个线程,主线程 子线程 进程的生命周期: 进程状态产生的原因: 查看当前系统的进程 ps au…...
由于设置了全局 QWidget 背景导致QT QCalendarWidget 表态背景异常
解决: 单独设置QCalendarWidget 的qss : 对象是查看源码所得 QWidget#qt_calendar_navigationbar{ ...... } QToolButton#qt_calendar_prevmonth, #qt_calendar_nextmonth, #qt_calendar_monthbutton, #qt_calendar_yearbutt…...
数据库的重要你了解多少?如何保障数据库的安全?
随着信息技术的快速发展,数据库已经成为企业、组织以及个人日常生活中不可或缺的一部分。然而,随着数据库的广泛应用,其安全性问题也日益凸显。数据库的安全性主要包括数据的完整性、保密性和可用性。本文将探讨数据库安全性的重要性、以及如…...
距离“全自动”漏洞挖掘又近了一步!腾讯安全大数据实验室论文入选ACM CCS 2023
计算机领域国际权威学术顶会ACM CCS 2023于11月26日在丹麦哥本哈根开幕。腾讯安全大数据实验室团队论文《Hopper: Interpretative Fuzzing for Libraries》被大会收录,昨天,实验室研究员谢雨轩受邀出席大会进行主题分享。 该论文提出了解释性模糊测试&a…...
docker搭建rabbit集群
1.去rabbitMQ官网拉去images 我当前使用的是最新版本的镜像:rabbitmq:3.12-management 2.创建一个集群专用网络 docker的容器相互隔离是不可通信的,我们自行创建一个网络后,创建容器时 给他们放在一起,就可以通信了。 docker netw…...
西南科技大学C++程序设计实验一(C++基础知识)
目录 一、实验目的 二、实验任务 三、预习内容(复习书中前3章内容,说明C++相对于C的扩展有哪些?) 四、问题思考与讨论 一、实验目的 1.熟悉编程环境 2.掌握程序调试方法。 3.熟悉枚举类型、结构体类型等自定义数据类型的使用 4.熟悉函数的定义、说明与使用 5.熟悉引用…...
Rust内存布局
题图忘了来自哪里.. 整型,浮点型,struct,vec!,enum 本文是对 Rust内存布局 的学习与记录 struct A { a: i64, b: u64,}struct B { a: i32, b: u64,}struct C { a: i64, b: u64, c: i32,}struct D { a: i32, b: u64, c: i32, d: u64,}fn main(…...
android 12 添加菜单
1.创建一级菜单 packages\apps\Settings\res\xml\top_level_settings.xml <com.android.settings.widget.HomepagePreferenceandroid:fragment"com.android.settings.DeviceStatusSettings"android:icon"drawable/ic_settings_display_white"android:…...
Map 的 5 种遍历方式
Map 的 5 种遍历方式 强烈推荐 for-each entrySet()遍历 和 lambda 表达式遍历 ,简洁又好用!!! package com.maptest; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set;pub…...
Linux的基本指令 ( 一 )
目录 前言 Linux基本指令 快速认识五个指令 ls指令 补充内容 pwd指令 补充内容 cd指令 补充内容 重新认识指令 指令的本质 which指令 alias指令 最后 一个文件的三种时间 tree指令及安装 tree指令 前言 关于Linux操作系统的桌面,在学校教学中我们…...
【深度学习】学习率及多种选择策略
学习率是最影响性能的超参数之一,如果我们只能调整一个超参数,那么最好的选择就是它。相比于其它超参数学习率以一种更加复杂的方式控制着模型的有效容量,当学习率最优时,模型的有效容量最大。本文从手动选择学习率到使用预热机制…...
具有“真实触感”的动捕数据手套mhand pro,提供更精确的动作捕捉
随着人工智能的普及和万物互联,vr虚拟技术备受关注,为了更加真实的虚拟现实交互体验,动捕数据手套的使用逐渐普及,vr手套可以实时采集各手指关节运动数据,使用动捕数据手套可以在虚拟现实的场景中实现对真实手部运动的…...
Mongodb使用killCursors停止运行的cursor
cursor指向查询结果的游标,通过游标向下移动,获得下一条查询结果。MongoDB分批向用户返回数据结果。通过游标的移动, mongodb确定当前返回结果的位置,是否要加载更多数据到内存当中。cursor有默认的超时时间, 超时后cu…...
电脑风扇转一下停一下,无法正常开机问题解决
今天同事电话说电脑开不了机了,只听见风扇不停地呜呜地作响。笔者第一反应是不是硬件哪里出问题了,于是二话没说拿起心爱的螺丝刀就闪了过去。 按下电源,确实如电话所述。但感觉风扇并非一直在转,而是时断时续。由于听不大真切&a…...
无需部署服务器,如何结合内网穿透实现公网访问导航页工具Dashy
文章目录 简介1. 安装Dashy2. 安装cpolar3.配置公网访问地址4. 固定域名访问 简介 Dashy 是一个开源的自托管的导航页配置服务,具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。你可以将自己常用的一些网站聚合起来放在一起,形成自己的导航…...
Go GORM简介
GORM(Go Object-Relational Mapping)是一个用于Go语言的ORM库,它提供了一种简单、优雅的方式来操作数据库。GORM支持多种数据库,包括MySQL、PostgreSQL、SQLite和SQL Server。以下是GORM的一些主要特性 全功能ORM:GORM…...
前端量子纠缠 效果炸裂 multipleWindow3dScene
我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 ✈️已经旅游的地点 | 新疆-乌鲁木齐、新疆-吐鲁番、广东-广州…...
第十七章 处理空字符串和 Null 值 - XMLIGNORENULL、XMLNIL 和 XMLUSEMPTYELEMENT 的详细信息
文章目录 第十七章 处理空字符串和 Null 值 - XMLIGNORENULL、XMLNIL 和 XMLUSEMPTYELEMENT 的详细信息XMLIGNORENULL、XMLNIL 和 XMLUSEMPTYELEMENT 的详细信息XMLIGNORENULLXMLNILXMLUSEEMPTYELEMENT 导入值 第十七章 处理空字符串和 Null 值 - XMLIGNORENULL、XMLNIL 和 XML…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
