mysql 根据时间段删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 根据时间段删除相关的知识,希望对你有一定的参考价值。

比如说删除从2012-11-02 11:21:00开始 删除到 2012-11-11 15:51:00 字段都是datatime类型

参考技术A delete from 表名 where 字段名 between '2012-11-02 11:21:00' and '2012-11-11 !5:51:00'本回答被提问者采纳 参考技术B delete from 表名 where 字段名 between '2012-11-02 11:21:00' and '2012-11-11 !5:51:00' 参考技术C 做数据库修改,增加一个时间字段,然后再根据这个来做删除吧

MySql根据字段名查询重复记录并删除!只保留一条

最近在处理业务数据的时候!在几W条记录里存在着些相同的记录,如何用SQL语句,删除掉重复的呢?

可以用以下方法进行处理

其实很简单!就是查找表中多余的重复记录,重复记录是根据单个字段来查询、然后删除其他重复的记录即可

查询重复记录

SELECT  id ,title from  topic GROUP BY title HAVING count(*) > 1;

这样查出来的结果比较乱

查询全部的重复记录并分组

​​​​SELECT
	* 
FROM
	topic 
WHERE
	title IN ( SELECT title FROM topic GROUP BY  title HAVING Count(*)> 1 ) 
	AND title IN (
	SELECT
		title 
	FROM
		topic 
	GROUP BY
		title
HAVING
	count(*)> 1) ORDER BY title

对查询结果进行分组根据需要的字段 

查询除第一条外的多余数据

SELECT
	*
FROM
	topic
WHERE
	id NOT IN (
		SELECT
			dt.minId
		FROM
			(
				SELECT
					MIN(id) AS minId
				FROM
					topic
				GROUP BY
				title
			) dt
	)
ORDER BY
	title

删除第一条外的多余数据

DELETE
FROM
	topic
WHERE
	id NOT IN (
		SELECT
			dt.minId
		FROM
			(
				SELECT
					MIN(id) AS minId
				FROM
					topic
				GROUP BY
					title
			) dt
	)
ORDER BY
	title

以上是关于mysql 根据时间段删除的主要内容,如果未能解决你的问题,请参考以下文章

MySQL:如何根据列删除多行记录的一行

MySql表分区(根据时间datetime)

mysql表分区(根据时间)

mysql删除重复数据,保留一条

mysql 根据查询条件删除数据 mark一下

mysql数据删除过慢