精华内容
下载资源
问答
  • mysql删除查询到的数据
    万次阅读
    2019-06-11 17:54:47

    DELETE tb_a from table_a as tb_a INNER JOIN (SELECT * from table_a where name like ‘123%’) as tb_b on tb_b.id = tb_a.id;

    更多相关内容
  • 一、查询重复数据 --------根据多个字段查询重复数据 SELECT * FROM table_name a WHERE (a.字段1, a.字段2) IN ( SELECT 字段1, 字段2 FROM table_name GROUP BY 字段1, 字段2 HAVING

    一、查询重复数据
    --------根据多个字段查询重复数据

    
    SELECT
        *
    FROM
        table_name a
    WHERE
        (a.字段1, a.字段2) IN (
            SELECT
                字段1,
                字段2
            FROM
                table_name 
            GROUP BY
                字段1,
                字段2
            HAVING
                count(*) > 1
        )
    

    二、根据多个字段删除重复数据,只保留一条数据
    注意:这种写法 必须保证有一个主键 如id,删除多余数据是 ,是根据id,保留最小或者最大的一条数据

    DELETE
    FROM
    	table_name 
    WHERE
    	(字段1, 字段2) IN (
    		SELECT
    			t.字段1,
    			t.字段2
    		FROM
    			(
    				SELECT
    					字段1,
    					字段2
    				FROM
    					table_name 
    				GROUP BY
    					字段1,
    					字段2
    				HAVING
    					count(1) > 1
    			) t
    	)
    AND id NOT IN (
    	SELECT
    		dt.id
    	FROM
    		(
    			SELECT
    				min(id) AS id
    			FROM
    				table_name 
    			GROUP BY
    				字段1,
    				字段2
    			HAVING
    				count(1) > 1
    		) dt
    )
    

    三、没有主键时删除重复数据

    
    ###字段1,字段2,字段3,字段4,字段5,字段6 是表中所有字段
    create table new_table_temp
    select DISTINCT 字段1,字段2,字段3,字段4,字段5,字段6 from table_name
    
    delete from table_name
    insert into table_name
    select * from new_table_temp
    
    DROP TABLE new_table_temp
    
    展开全文
  • MySQL删除重复数据

    千次阅读 2022-05-25 16:52:54
    DELETE FROM `要删除重复字段的表名称` WHERE ID in (SELECT * FROM (Select MAX(ID) From `要删除重复字段的表名称` Group By 重复字段(可写多个,多个字段同时重复 重复字段1,重复字段2,重复字段3) Having Count...
    DELETE FROM `要删除重复字段的表名称` WHERE ID in (SELECT * FROM (Select MAX(ID) From `要删除重复字段的表名称` Group By 重复字段(可写多个,多个字段同时重复  重复字段1,重复字段2,重复字段3) Having Count(*)>1) as 给子查询起个别名不然会报错);
    
    DELETE FROM `excel随机模拟数据` WHERE ID in (SELECT * FROM (Select MAX(ID) From `excel随机模拟数据` Group By 随机1,随机2 Having Count(*)>1) as YZY);

    每次执行只能删除不同重复数据的一条,有多条需要多次执行,直到影响0行记录!

    展开全文
  • MySQL 数据查询

    千次阅读 2022-03-31 14:12:39
    MySQL中是使用SELECT语句来查询数据的。 一、MySQL数据表简单查询 简单查询即不含where的select语句。在此,我们讲解简单查询中最常用的两种查询查询所有字段和查询指定字段。 1.1、MySQL查询所有字段 查询...

    查询数据指从数据库中获取所需要的数据。查询数据是数据库操作中最常用,也是最重要的操作。用户可以根据自己对数据的需求,使用不同的查询方式。通过不同的查询方式,可以获得不同的数据。MySQL中是使用SELECT语句来查询数据的。

    一、MySQL数据表简单查询

    简单查询即不含where的select语句。在此,我们讲解简单查询中最常用的两种查询:查询所有字段和查询指定字段。

    1.1、MySQL查询所有字段

    查询所有字段 MySQL命令:

    select * from students;

    1.2、MySQL查询指定字段

    查询指定字段 MySQL命令:

    select stuid from students;

    1.3 、常数的查询

    在SELECT中除了书写列名,还可以书写常数。可以用于标记
    常数的查询日期标记 MySQL命令:

    select stuid,name,'2021-03-02' from students;
    

    1.4、从查询结果中过滤重复数据

    在使用DISTINCT 时需要注意:
    在SELECT查询语句中DISTINCT关键字只能用在第一个所查列名之前。
    MySQL命令格式:

    select distinct,name from students;

    1.5、算术运算符(举例加运算符)

    在SELECT查询语句中还可以使用加减乘除运算符。
    查询学生10年后的年龄 MySQL命令:

    select name,age+10 from students;

    二、聚合函数

    在开发中,我们常常有类似的需求:统计某个字段的最大值、最小值、 平均值等等。为此,MySQL中提供了聚合函数来实现这些功能。所谓聚合,就是将多行汇总成一行;其实,所有的聚合函数均如此——输入多行,输出一行。聚合函数具有自动滤空的功能,若某一个值为NULL,那么会自动将其过滤使其不参与运算。
    聚合函数使用规则:
    只有SELECT子句和HAVING子句、ORDER BY子句中能够使用聚合函数。例如,在WHERE子句中使用聚合函数是错误的。
    接下来,我们学习常用聚合函数。

    函数作用
    sum()计算指定列的数值和,如果指定列类型不是数值类型则计算结果为0
    avg()计算指定列的平均值,如果指定列类型不是数值类型则计算结果为0
    max()计算指定列的最大值,如果指定列是字符串类型则使用字符串排序运算
    min()计算指定列的最小值,如果指定列是字符串类型则使用字符串排序运算
    count()

    统计表中数据的行数或者统计指定列其值不为NULL的数据个数

    2.1、sum()语句格式

    MySQL语法格式:

    select sum(字段名) from 数据表名;

    查询该学生表中年纪的总和 MySQL命令:

    select sum(age) from students;

    2.2、avg()语句格式

    MySQL语法格式:

    select avg(字段名) from 数据表名;

    查询该学生表中年纪的平均数 MySQL命令:

    select avg(age) from students;

    2.3、max()语句格式

    MySQL语法格式:

    select max(字段名) from 数据表名;

    查询学生表中年龄最大的学生 MySQL命令:

    select max(age) from students;

    2.4、min()语句格式

    MySQL语法格式:

    select min(字段名) from 数据表名;

    查询该学生表中年纪最小的学生 MySQL命令:

    select min(age) from students;
    

    2.5、count()语句格式

    MySQL语法格式:

    select count(字段名)from 数据表名;

    统计学生表中有多少人 MySQL命令:

    select count(*) from students;

    三、条件查询

    数据库中存有大量数据,我们可根据需求获取指定的数据。此时,我们可在查询语句中通过WHERE子句指定查询条件对查询结果进行过滤。

    3.1、条件语句格式

    select  *  from  表名 where 条件;

    3.2、条件的写法

    条件作用
    >大于
    <小于
    <>不等于
    !=不等于
    =等于
    <=小于等于
    >=大于等于
    or
    and而且
    is null内容为空
    is not null内容不为空
    like模糊查询
    in判断某个字段是否存在给定的元组中
    between...and...判断范围

    3.3、使用关系运算符查询

    查询年龄小于25的学生的信息 MySQL命令

    select * from students where age<25;

    3.4、使用in关键字查询

    N关键字用于判断某个字段的值是否在指定集合中。如果字段的值恰好在指定的集合中,则将字段所在的记录将査询出来。

    查询stuid为18和20的学生信息 MySQL命令:

    select * from students where stuid in (18,20);

    3.5、使用BETWEEN AND关键字查询

    BETWEEN AND用于判断某个字段的值是否在指定的范围之内。如果字段的值在指定范围内,则将所在的记录将查询出来
    查询10到18岁的学生信息 MySQL命令:

    select * from students where age between 10 and 18

    3.6、使用空值查询

    在MySQL中,使用 IS NULL关键字判断字段的值是否为空值。请注意:空值NULL不同于0,也不同于空字符串
    查询name不为空值的学生信息 MySQL命令:

    select * from students where name is not null;

    3.7、使用LIKE关键字查询

    %用于匹配任意长度的字符串。例如,字符串“a%”匹配以字符a开始任意长度的字符串

    _用于匹配一个任意的字符串。列入,字符串"ab_"匹配"ab"开始长度为3的字符串,如abc、abp等等..

    查询学生姓名以r为开头的记录 MySQL命令:

    select * from student where name like "r%";

    3.8、使用LIMIT限制查询结果的数量

    查询学生表中年纪最大的3位同学 MySQL命令:

    select * from students age order by desc limit 3;

    3.9、使用GROUP BY进行分组查询

    统计学生男女人数 MySQL命令:

    select count(gender),gender from students group by gender;

    4.0、使用 order by 对查询结果进行排序。

    从表中査询出来的数据可能是无序的或者其排列顺序不是我们期望的。为此,我们可以使用ORDER BY对查询结果进行排序
    升序排列 MySQL命令格式:

    select 字段名 from 数据表名 order by stuid;

    降序排列 MySQL命令格式:

    select 字段名 from 数据表名 order by stuid desc;

    4.1、使用distinct去除重复的字段

    去除重复的年龄[每个年龄只显示一条记录] MySQL命令格式:

    select distinct age from students order by age ;

    四、多表连接查询

    将两张表或多张表联合起来查询,这就是连接查询。

    4.1、交叉连接

    交叉连接返回的结果是被连接的两个表中所有数据行的笛卡儿积。

    MySQL:语法格式:

    select * from 表1,表2;

    由于这个交叉连接查询在实际运用中没有任何意义,所以只做为了解即可

    4.2、内链接查询(自然连接,等值链接)

    内连接使用比较运算符对两个表中的数据进行比较并列出与连接条件匹配的数据行,组合成新的 记录。也就是说在内连接查询中只有满足条件的记录才能出现在查询结果中。

    MySQL:语法格式:

    select * from 表1,表2 where 表1.字段 = 表2.字段;

     查询学生所在班级 MySQL命令格式:

    select * from students,classes where students.classID = classes.classID;

    4.3、外链接查询

    在使用内连接查询时我们发现:返回的结果只包含符合查询条件连接条件数据。但是,有时还需要在返回查询结果中不仅包含符合条件的数据,而且还包括左表、右表或两个表中的所有数据,此时我们就需要使用外连接查询。外连接又分为左(外)连接右(外)连接

    MySQL 语法格式:

    select * from 表1 left join 表2 on 条件;

    LEFT  JOIN 左(外)连接:返回包括左表中的所有记录和右表中符合连接条件的记录。
    RIGHT JOIN 右(外)连接:返回包括右表中的所有记录和左表中符合连接条件的记录。

    关键字左边的表被称为左表,关键字右边的表被称为右表.

    4.3.1、左外链接查询

    左外连接的结果包括LEFT JOIN子句中指定的左表的所有记录,以及所有满足连接条件的记录。如果左表的某条记录在右表中不存在则在右表中显示为null。

    查看班级下所有学生的老师姓名 MySQL命令:

    select * from students left join teachers on students.teacherid = teachers.tid;

    4.3.2、右外链接查询

    右外连接的结果包括RIGHT JOIN子句中指定的右表的所有记录,以及所有满足连接条件的记录。如果右表的某条记录在左表中没有匹配,则左表将返回null。

    查看每个学生的姓名和班级名 MySQL命令:

    select * from students right join classes on students.classid = classes.classid;

    五、子查询

    子查询是指一个查询语句嵌套在另一个查询语句内部的查询;该查询语句可以嵌套在一个 SELECT、SELECT…INTO、INSERT…INTO等语句中。在执行查询时,首先会执行子查询中的语句,再将返回的结果作为外层查询的过滤条件。

    MySQL语法格式:

    select 字段 from 表名 where 字段=(select classid from students where name = Sun dasheng)

    查询所有年龄小于平均年龄的学生 MySQL:

    select * from students where age<(select avg(age) from students);

    对于MySQL,不推荐使用子查询,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。

    以上就是本期的全部内容,觉得有用的话可以点下关注,后续还会带来更多有用的知识

    展开全文
  • MySQL删除数据的两种方法

    万次阅读 2021-01-18 22:01:12
    1. 在MySQL中有两种方法可以删除数据:一种是delete语句,另一种是truncate table语句。delete语句可以通过where对要删除的记录进行选择,而使用truncate table将删除表中的所有记录。因此,delete语句更灵活。2. ...
  • MySQL如何删除重复数据

    千次阅读 2020-11-18 18:47:11
    MySQL中经常会遇到重复的数据,那么当我们遇到重复的时候的时候,如果定位哪些数据是有重复的记录?如何删除重复的数据?我们该怎么做呢?接下来我们一步步来分析一下遇到这样的情况后,该如何处理。 初始化实验环境...
  • MySQL删除数据

    千次阅读 2021-07-05 20:49:57
    MySQL通过DELETE语句删除数据表中的数据。在此,我们先准备一张数据表,代码如下:    -- 创建学生表    create table student(    id int,    name varchar(30),    age int,    gender varchar(30) ...
  • mysql批量删除大量数据的方法

    万次阅读 2021-01-27 01:21:16
    mysql批量删除大量数据假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM syslogs WHERE statusid=1 会发现删除失败,因为lock...
  • 一、MySQL清空表数据命令:truncate SQL语法: truncate table 表名 注意: 不能与where一起使用。 truncate删除数据后是不可以rollback的。 truncate删除数据后会重置...二、MySQL删除表命令:drop SQL语法:
  • MySQL如何删除一行数据

    万次阅读 2022-05-25 03:51:04
    MySQL中,可以使用DELETE语句配合WHERE条件子句来删除数据表中某一行数据,DELETE语句可以根据WHERE子句设置的条件来删除指定的一行或者多行的数据,删除语法为: “DELETE FROM 表名 WHERE 字段名=字段值;”。 ...
  • mysql数据库按时间删除数据总结

    千次阅读 2021-02-04 22:13:58
    今天访问程序时报如下异常: 主要原因如下:数据库所在磁盘空间不够所...1.首先执行以下sql语句,查询数据库中各个表所占空间大小,输出按降序排序SELECT TABLE_NAME, CONCAT(TRUNCATE(data_length/1024/1024,2),' ...
  • MySQL数据删除语句

    万次阅读 2021-10-04 00:08:13
    使用 DELETE 语句从单个表中删除数据,语法格式为: DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句] 语法说明如下: <表名>:指定要删除数据的表名。 ORDER BY 子句:可选项。表示...
  • Mysql 删除数据表的三种方式详解 用法: 1、当你不再需要该表时, 用 drop; 2、当你仍要保留该表,但要删除所有记录时, 用 truncate; 3、当你要删除部分记录或者有可能会后悔的话, 用 delete。 删除程度可从...
  • MYSQL删除表中的指定ID数据

    千次阅读 2021-04-21 04:34:43
    MYSQL删除表中的指定ID数据删除A表中的ID 中的开头以B* 的数据库。复制代码 代码如下:delete FROM A WHERE id like 'B%'单独删除 A 表中的ID B复制代码 代码如下:delete FROM A WHERE id = 'B'时间: 2013-01-26表...
  • 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select ... 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowi...
  • mysql数据库删除一行数据

    千次阅读 2021-01-19 10:09:55
    [MySQL]命令行工具和基本操作原文:[MySQL]命令行工具和基本操作一 MySQL命令行工具 (查看帮助 ---help,或 -?)1)MySQLMySQL是一个简单的SQL外壳(有GNU readline...陈2014-02-24608浏览量mysql 数据导入导出数据的m...
  • MySQL删除或清空表中数据的方法

    万次阅读 2021-01-18 19:15:29
    原标题:MySQL删除或清空表中数据的方法要想把MySQL中的数据删除或清空,可以通过两种方法来实现:DELETE语句和TRUNCATE TABLE语句。 DELETE语句可以将表中所有记录都删除,也可以指定WHERE子句,对要删除的记录进行...
  • mysql删除某天前的数据

    千次阅读 2022-01-12 15:23:51
    数据库中有某些数据中存储了时间戳(秒),需要根据这个时间去清理几天前的数据,比如说5天前,假设当前是1月5号,我们要清除的1月1号0点前的数据 获取当前的日期 SELECT CURRENT_DATE; 获取几天前 这个可以使用...
  • mysql如何删除表中一行数据

    万次阅读 2021-01-27 09:10:30
    mysql中使用DELETE语句删除表中一行数据,语句为“DELETE FROM 表名称 WHERE 列名称 = 值”。删除所有行的语句为“DELETE FROM table_name”。mysql中使用DELETE语句删除表中一行数据,语句为“DELETE FROM 表名称 ...
  • MYSQL 删除百万级数据

    千次阅读 2020-06-07 15:17:05
    MYSQL 刚建立的数据库的时候,没有考虑数据过多会导致后续查询的问题,也没有建立定期删除的存储过程,等到发现资料过大的时候,直接删除已经不可行了,所以不得不去尝试其他的方式。 数据库情况:每天有50W笔资料...
  • 关于删除mysql表中某个字段重复数据问题重复一次首先查出重复的数据删除sql几个关键点解释下:重复多次(不确定几次)首先查出重复的数据删除sql几个关键点解释下:写在最后 重复一次 首先查出重复的数据 SELECT * ...
  • Mysql】如何删除百万条以上数据

    千次阅读 2022-05-13 14:52:47
    此处提供2中方法:TRUNCATE TABLE 和存储过程(批量删除),后续有新方法会补充。
  • mysql删除数据表中指定的数据

    千次阅读 2021-10-16 16:40:18
    mysql删除数据表中指定的数据1、背景2、删除数据表中指定的数据3、示例 1、背景 数据库一旦删除数据,它就会永远消失。 请谨慎操作,三思而后行! 2、删除数据表中指定的数据 在 MySQL 中,可以使用 DELETE ...
  • 数据库mysql如何删除多条数据

    千次阅读 2021-09-17 15:09:30
    --删除连贯数据,可以用between and--> delete from `t_emp` where id Between 23 and 99; <--删除散列数据,可以用in--> delete from `t_emp` where id in(3,5,6,8); t_emp是你的表名
  • mysql数据库定时删除数据

    千次阅读 2021-12-09 13:45:10
    本文仅介绍推荐的MYSQL删除策略 自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的...
  • MySQL基本操作——删除数据各类情况总结一、删除单张表&按条件删除表中行数据二、删除数据库中所有表且不保留表结构三、一次性删除整个数据库中所有表数据并保留表结构附录:information_schema.tables基本介绍1...
  • 原本前台使用的就是一条一条删除数据,当多选时调用删除方法并不能成功,查看发现SQL批量删除语句和单个删除语句不太一样,于是记录一下学习过程。 一、一次删除一条数据 SQL语句如下: DELETE FROM 表名 WHERE ...
  • MySQL删除表中的数据

    万次阅读 多人点赞 2020-09-14 19:46:36
    Mysql删除表中的数据有三种方法,分别是delete ,drop,truncate。 一、delete删除表中的数据 delete好from结合使用,格式一般为:delete from 表名 where 条件,delete删除数据是将Mysql表中的数据一行一行的删除,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 723,478
精华内容 289,391
热门标签
关键字:

mysql删除查询到的数据

mysql 订阅