php实现只保留mysql中最新1000条记录

  这篇文章主要介绍了php实现只保留mysql中最新1000条记录的方法和相关示例及数据库结构,十分的全面,有需要的小伙伴可以参考下。

  ?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<?php

mysql_connect("localhost","root","root");

mysql_select_db("test");

//保留最新的1000条记录

$limit=1000;

$query="select `id` from `news`";

$result=mysql_query($query);

$num=mysql_num_rows($result);

if($num>$limit){

$query="select `id` from `news` order by `id` desc limit ".$limit;

$result=mysql_query($query);

mysql_data_seek($result,$limit-1);

$data=mysql_fetch_array($result);

$query="delete from `news` where `id`<‘$data[id]‘";

if(mysql_query($query)){

echo "数据库中原有".$num."条记录,多余的".($num-$limit)."条记录被成功删除,现在还剩余".$limit."条记录!";

}

}else{

echo "数据记录不足".$limit."条!没有必要删除!";

}

?>

  test.sql

  -- phpMyAdmin SQL Dump

  -- version 3.1.5-rc1

  -- http://www.phpmyadmin.net

  --

  -- 主机: localhost

  -- 生成日期: 2010 年 08 月 19 日 05:47

  -- 服务器版本: 5.0.18

  -- PHP 版本: 5.2.8

  SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

  /*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;

  /*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;

  /*!40101 SET @[email protected]@COLLATION_CONNECTION */;

  /*!40101 SET NAMES utf8 */;

  --

  -- 数据库: `test`

  --

  -- --------------------------------------------------------

  --

  -- 表的结构 `news`

  --

  ?


1

2

3

4

5

CREATE TABLE IF NOT EXISTS `news` (

`id` int(11) unsigned NOT NULL auto_increment,

`title` varchar(256) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=gb2312;

 

时间: 2024-12-06 01:26:06

php实现只保留mysql中最新1000条记录的相关文章

【方法2】删除Map中Value重复的记录,并且只保留Key最小的那条记录

根据guigui111111的建议:先把Map按Key从大到小排序,然后再把Key和Value互换.这也是一种很好的思路,我写了一下代码,顺便贴上来,供大家参考与分享. package shuai.study.map; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import j

删除Map中Value重复的记录,并且只保留Key最小的那条记录

介绍 晚上无聊的时候,我做了一个测试题,测试题的大体意思是:删除Map中Value重复的记录,并且只保留Key最小的那条记录. 例如: I have a map with duplicate values: ("A", "1"); ("B", "2"); ("C", "2"); ("D", "3"); ("E", "3

【方法3:Perl版本】删除Map中Value重复的记录,并且只保留Key最小的那条记录

icemouse210写了一个Perl版本的,发挥了脚本高度封装的优势.我把代码贴出来,供大家参考分享. #!/user/bin/perl -w use English; use strict; use warnings; my %test_hash=( "A" => '1', "B" => '2', "C" => "2", "D" => "3", "E

保留mysql数据库中的最新1000条记录

<?php mysql_connect("localhost","root","root");mysql_select_db("test");//保留最新的1000条记录$limit=1000;$query="select `id` from `news`";$result=mysql_query($query);$num=mysql_num_rows($result);if($num>$lim

关于Oracle,sqlserver,mysql中查询10-20条记录的写法

一: oracle数据库写法: 1:select * from (select rownum rn ,* from 表名 where?rownum<20?) a? ?where a.rn>10 2:select * from 表名 where rownum<20 minus select * from 表名 where rownum<10 ? 二:SqlServer数据库写法: 1:select top 20 * from tablename where id not?exists

Sqlserver取最近一分组中最新一条记录

/* 1 用子查询 可以过滤掉parentID为NULL的*/ select * from Bid_ProjectPackageAlteredDesignInfo t0 where exists ( select 1 from ( select ParentID, max(AlterTime) as AlterTime from Bid_ProjectPackageAlteredDesignInfo group by ParentID ) x where x.ParentID = t0.Pare

navicat MySQL 只有1000条记录

/*************************************************************************** * navicat MySQL 只有1000条记录 * 说明: * 早上跑来了,查看一下数据库中数据情况,结果navicat只能看到1000条记录, * 查看mysql数据库结果是有全部的数据,原因是navicat只能显示1000条记录. * * 2016-10-29 深圳 南山平山村 曾剑锋 *************************

【方法1】删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录

介绍 晚上无聊的时候,我做了一个測试题,測试题的大体意思是:删除Map中Value反复的记录,而且仅仅保留Key最小的那条记录. 比如: I have a map with duplicate values: ("A", "1"); ("B", "2"); ("C", "2"); ("D", "3"); ("E", "

[django/mysql] 使用distinct在mysql中查询多条不重复记录值的解决办法

前言:不废话.,直接进入正文 正文: 如何使用distinct在mysql中查询多条不重复记录值? 首先,我们必须知道在django中模型执行查询有两种方法: 第一种,使用django给出的api,例如filter value distinct order_by等模型查询api; 代码:LOrder.objects.values('finish_time').distinct() 这里应注意,原官方文档中写到: 示例(第一个之后的示例都只能在PostgreSQL 上工作): >>> Au