Mysql获取id最大值、表的记录总数等相关问题的方法汇总

一、mysql 获取当前字段最大id

SQL语句:

select max(id) from yourtable;

二、获取mysql表自增(Auto_increment)值

Auto_increment是表中的一个属性,只要把表的状态获取到,也就可以获取到那个自增值

SQL语句:

show table status like “表名”;

php代码实现

$get_table_status_sql = "SHOW TABLE STATUS LIKE '表名'";
$result = mysql_query($get_table_status_sql);
$table_status = mysql_fetch_array($result);
echo $table_status['Auto_increment']; // 这个就是自增值

select max(id) from testnotnull;

三、获取一个表的记录总数

select count(*) from table;

select count(id) from table;
SELECT SQL_CALC_FOUND_ROWS * FROM table_name;
SELECT FOUND_ROWS();

myisam count(*)主键 时要 加条件,此条件为 类型 字段,索引无效

不加条件下非常快,加了后慢了两个数量级

使用 SHOW TABLE STATUS 语句是最高效的方法

格式

SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]

示例:

SHOW TABLE STATUS FROM cpdlt LIKE 'lehecai_1202';

总结

以上就是为大家整理的如何获取一个表的记录数、获取一个表的最大id以及获取一个表的auto_increment值等相关问题的全部内容,希望对大家的学习或者工作带来一定的帮助,如果有疑问的大家可以留言交流。

(0)

相关推荐

  • Java实现获得MySQL数据库中所有表的记录总数可行方法

    在MySQL中,可以通过SELECT COUNT(*) FROM table_name查询某个表中有多少条记录.如果想知道某个数据库中所有别的记录总数应该怎么做呢?本文给出两种可行的Java程序,解决该问题. 1. 首先确定数据库中有多少个表,然后对每个表执行SELECT COUNT(*) FROM table_name 复制代码 代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.Pr

  • 将所有符合条件的结果拼接成一列并用逗号隔开的一个sql语句

    复制代码 代码如下: create table tb(id int, value varchar(10)) insert into tb values(1, 'aa') insert into tb values(1, 'bb') insert into tb values(2, 'aaa') insert into tb values(2, 'bbb') insert into tb values(2, 'ccc') go create function [dbo].[f_str](@id i

  • SQL一条语句统计记录总数及各状态数

    方法一. 复制代码 代码如下: SELECT SUM(正确数)+SUM(错误数) AS 总记录数,SUM(正确数),SUM(错误数) FROM ( SELECT COUNT(1) 正确数,0 错误数 FROM TB WHERE STATUS=1 UNION ALL SELECT 0 正确数,COUNT(1) 错误数 FROM TB WHERE STATUS=0) a 方法二. 复制代码 代码如下: select count(1)总记录数,sum(case when status=1 then 1

  • mssql数据库游标批量修改符合条件记录的方法

    需求:由于项目刚上传,没有票数,为了表现出一定的人气,需要在一开始把各项目的票数赋一个值 , 但每个项目不能一样,否则容易看出问题,呵呵 . 复制代码 代码如下: DECLARE @Id varchar(50) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT Id FROM dbo.kinpanAwardProject where session=9) --查出需要的集合放到游标中 OPEN My_Cursor; --打开游标 FETCH NEXT FRO

  • SQL查询数据库中符合条件的记录的总数

    1. select count(*) from table; //统计元组个数 2. select count(列名) from table; //统计一列中值的个数 3. select count(*) from table where 字段 = ""; //符合该条件的记录总数 4. sql_count = "select count(*) from article a where 1=1 "; //这条语句中a就代表article 这张表,后面可以写a.字段来

  • Mysql获取id最大值、表的记录总数等相关问题的方法汇总

    一.mysql 获取当前字段最大id SQL语句: select max(id) from yourtable; 二.获取mysql表自增(Auto_increment)值 Auto_increment是表中的一个属性,只要把表的状态获取到,也就可以获取到那个自增值 SQL语句: show table status like "表名"; php代码实现 $get_table_status_sql = "SHOW TABLE STATUS LIKE '表名'"; $r

  • Oracle 当前用户下所有表的记录总数

    分析当前用户下所有表的记录总数 保证好用! 复制代码 代码如下: begin dbms_utility.analyze_schema(user,'COMPUTE'); end; select t.table_name,t.num_rows,t.blocks,t.empty_blocks from user_tables t

  • PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法

    本文实例讲述了PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法.分享给大家供大家参考,具体如下: 这是一段简单的代码,可实现统计该数据库中每个表的记录数,并按递减顺序排列的功能 $host = '127.0.0.1'; $port = 3306; $dbname = 'test'; $username = 'root'; $password = ''; function ee($p) { if(PHP_SAPI == 'cli') { echo "\n"; }else{

  • django 获取字段最大值,最新的记录操作

    如果是直接在数据库拉取 from django.db.models import Max Argument.objects.all().aggregate(Max('rating')) 如果是从已经存在的model列表获取 from django.db.models import Max args = Argument.objects.all() args.aggregate(Max('rating')) 获取最新的一行数据 max_rated_entry = YourModel.objects

  • mysql获取group by的总记录行数另类方法

    mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组的记录数. mysql的SQL_CALC_FOUND_ROWS 使用 获取查询的行数 在很多分页的程序中都这样写: 代码如下 SELECT COUNT(*) from `table` WHERE ......; 查出符合条件的记录总数 代码如下 SELECT * FROM `table` WHERE ...... limit M,N; 查询当页要显示的数据 这样的语句可以改成: 代码如下 SELECT SQL_

  • sql分组后二次汇总(处理表重复记录查询和删除)的实现方法

    --处理表重复记录(查询和删除) /****************************************************************************************************************************************************** 1.Num.Name相同的重复值记录,没有大小关系只保留一条 2.Name相同,ID有大小关系时,保留大或小其中一个记录 整理人:中国风(Roy) 日期:2008

  • MySQL 如何限制一张表的记录数

    目录 一.触发器解决方案 二.分区表解决方案 三.通用表空间解决方案 关于MySQL 如何限制一张表的记录数,这没有一个简化的答案,比如执行一条命令或者说简单设置一个参数都不能完美解决.接下来我给出一些可选解决方案. 对数据库来讲,一般问题的解决方案无非有两种,一种是在应用端:另外一种是在数据库端. 首先是在数据库端(假设表硬性限制为1W条记录): 一.触发器解决方案 触发器的思路很简单,每次插入新记录前,检查表记录数是否到达限定数量,数量未到,继续插入:数量达到,先插入一条新记录,再删除最老的

  • Mysql如何避免全表扫描的方法

    在以下几种条件下,MySQL就会做全表扫描: 1>数据表是在太小了,做一次全表扫描比做索引键的查找来得快多了.当表的记录总数小于10且记录长度比较短时通常这么做. 2>没有合适用于 ON 或 WHERE 分句的索引字段. 3>让索引字段和常量值比较,MySQL已经计算(基于索引树)到常量覆盖了数据表的很大部分,因此做全表扫描应该会来得更快. 4>通过其他字段使用了一个基数很小(很多记录匹配索引键值)的索引键.这种情况下,MySQL认为使用索引键需要大量查找,还不如全表扫描来得更快.

  • mysql获取分组后每组的最大值实例详解

     mysql获取分组后每组的最大值实例详解 1. 测试数据库表如下: create table test ( `id` int not null auto_increment, `name` varchar(20) not null default '', `score` int not null default 0, primary key(`id`) )engine=InnoDB CHARSET=UTF8; 2. 插入如下数据: mysql> select * from test; +---

随机推荐