【MySQL】查询表中重复数据、模糊查询列信息、快速copy表数据(1)

一、SQL查询重复的数据:

1、SQL格式:

Select * From  数据表 Where 重复记录字段 in ( select 重复记录字段 From  数据表 Group By 重复记录字段 Having Count(重复记录字段)>1)

2、举例: 在这个patient_member_info表中,我们要对账号(username)进行查重。可以见到,                   “wjx”与“zhaolimin”是重复数据。接下来筛选出重复的数据。

2.1、此时我的SQL语句:

SELECT
	* 
FROM
	patient_member_info 
WHERE
	username IN ( SELECT username FROM patient_member_info GROUP BY username HAVING COUNT( username ) > 1 );

2.2、查询结果:重复数据三条“wjx”与两条“zhaolimin”

二、根据列名模糊查询所属表、库信息

1、SQL格式:

SELECT
    GROUP_CONCAT(column_name) AS '列名',
    table_name AS '表名',
    MAX(COLUMN_COMMENT) AS '信息',  -- 使用聚合函数获取一个注释
    TABLE_SCHEMA AS '数据库名称'
FROM
    information_schema.COLUMNS 
WHERE
    TABLE_SCHEMA IN (SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA) 
    AND TABLE_NAME IN (SELECT TABLE_NAME FROM information_schema.TABLES GROUP BY TABLE_NAME)
    AND column_name LIKE '%you_column_name%' -- 这个SQL中只有这个位置是变量,换为你想查询的列
GROUP BY
    table_name, TABLE_SCHEMA;  -- 按表名和数据库名称分组

2、举例:我现在需要查询列名为  pic 的信息 

         2.1、 此时我的SQL语句:

        2.2、执行得到如下结果:

三、数据库copy表和数据

1、SQL格式:

CREATE TABLE a LIKE b;
INSERT INTO a SELECT
* 
FROM
	b;

2、 举例:在库中有一张b表,我需要将b表数据复制给另一个表(起名表a)

        2.1、我的SQL:

-- 数据库 copy 表和数据
CREATE TABLE a LIKE b;
INSERT INTO a SELECT
* 
FROM
	b;

        2.2、执行结果:copy成功

  • 16
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值