thinkPHP 如何查询出数据库中id最大的一条数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkPHP 如何查询出数据库中id最大的一条数据相关的知识,希望对你有一定的参考价值。

统计查询

在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数、所有用户的最大积分、用户的平均成绩等等,Thinkphp为这些统计操作提供了一系列的内置方法,包括:

方法            说明

Count    
统计数量,参数是要统计的字段名(可选)    

Max    
获取最大值,参数是要统计的字段名(必须)    

Min    
获取最小值,参数是要统计的字段名(必须)    

Avg    
获取平均值,参数是要统计的字段名(必须)    

Sum    
获取总分,参数是要统计的字段名(必须)    

用法示例:

获取用户的最大积分:

$maxScore = $User->max(\'score\');
参考技术A

thinkPHP 查询数据库中id最大的一条数据操作如下:

    先给数据库中的这个字段(sort)分组 再降序排列, 取第1条。

    通过步骤1 获取了 sort值为最大的数据, 然后在 通过 where sort ='步骤1取的值'。

    查询最大ID,select max(id) from table。

    查询最大ID的记录 select * from table where id = (select max(id) from table)
    或者select * from table t where  not exists (select 1 from table t1 where t1.id > t.id)

参考技术B $max_id = Db::name('finance')->max('id');//查询最大的id;

用这个id查询这条数据就行了;
参考技术C

    先给数据库中的这个字段(sort)分组 再降序排列, 取1条

    通过步骤1 获取了 sort值为最大的数据, 然后在 通过 where sort ='步骤1取的值'

参考技术D 以id 做倒序desc 排列 。取第一条数据追问

有别的方法吗?,如果我是查的一个字段值最小的话,要是那最小值有两条数据怎么办

追答

不知道你说的什么意思。、

追问

如果我查一个表,表有个字段`sort` 排序, 那我查排序最小的那些数据的话,可能有几个并列的最小,比如说最小`sort`=1; 但是有两条数据sort都等于1,那不是有两条数据了,那如果 以id 做倒序desc 排列 。取第一条数据的话,不就少查了一条数据出来

追答

select * from tbname where sort = 1 order by id desc
加个条件取不就可以了吗?

追问

更头疼的问题来了,表里还有一个字段name(有甲,乙,丙三个人,他们每个人有3条数据,sort可能相同可能不同),如果我是要查这3个人,每个人的数据sort最小的那一条,那怎么破

追答

select * from tbname where name="jia" order by sort desc limit 1
select * from tbname where name="yi" order by sort desc limit 1
select * from tbname where name="bing" order by sort desc limit 1
分别查询 。 THinkphp 可以把 where 写在一个数组里。 $where['name']=array("jia","yi","bing");
where($where)->order('sort desc")->limit(1)->select();

本回答被提问者和网友采纳

thinkPHP 如何查询出数据库中id最大的一条数据?

thinkPHP 查询数据库中id最大的一条数据操作如下:

    先给数据库中的这个字段(sort)分组 再降序排列, 取第1条。

    通过步骤1 获取了 sort值为最大的数据, 然后在 通过 where sort ='步骤1取的值'。

    查询最大ID,select max(id) from table。

    查询最大ID的记录 select * from table where id = (select max(id) from table)
    或者select * from table t where  not exists (select 1 from table t1 where t1.id > t.id)

参考技术A $max_info = Db::name('test')->order('id DESC')->findOrEmpty();
var_dump($max_info)

以上是关于thinkPHP 如何查询出数据库中id最大的一条数据的主要内容,如果未能解决你的问题,请参考以下文章

THINKPHP如何获取一个表2个字段中相同的数据

thinkphp 怎样获取每个id下的一条记录

thinkphp3.2.3 查询时使用where+select查询出来的比find查询多一个空数组

laravel-admin 怎样查库中的数据只查出一条where()排序最大的一条

thinkphp如何查询数据库某一表中有多少条数据?

mysql取出表中,某字段值最大的一条纪录,sql语句