thinkphp如何获取数据表主键id的最大值?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp如何获取数据表主键id的最大值?相关的知识,希望对你有一定的参考价值。
max()方法还在吗?在3.1.3后3.2这些版本如何能获取到吗
$user=M('user');
$user->data($data)->add(); // 根据条件保存修改的数据
$maxid=$user->max('g_id');
//p($maxid);die;
$adddata['g_id']=$maxid+1;
p($adddata);
if ($user->add())
$data['id']=$adddata;
$data['content'] =replace_phiz($data['content']);
$data['time']=date('y-m-d H:i',$data['time']);
$data['status']=1;
$this->ajaxReturn($data,'json');
else
//成功后返回客户端新增的用户ID,并返回提示信息和操作状态
$this->ajaxReturn(array('status'=>0),'json');
在不在他也是封装的sql查询语句
最大的主键 也就是最后一个数据 这个还用想吗?
你按id倒序排序 不就是出来了吗
闹到灵活点别把知识学死追问
$user=$id=M('user')->order('id DESC')->data($data)->add();
dump($id);
if ($user->add())
$data['id']=$id+1;
//省略若干
else
//省略若干
这样吗,貌似还是不行啊?
怎么不行呢?add如果成功应该返回的就是插入的主键吧 好像是这样
那么返回的不就是最大的主键了吗
thinkPHP 如何查询出数据库中id最大的一条数据
统计查询
在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数、所有用户的最大积分、用户的平均成绩等等,ThinkPHP为这些统计操作提供了一系列的内置方法,包括:
方法 说明
Count
统计数量,参数是要统计的字段名(可选)
Max
获取最大值,参数是要统计的字段名(必须)
Min
获取最小值,参数是要统计的字段名(必须)
Avg
获取平均值,参数是要统计的字段名(必须)
Sum
获取总分,参数是要统计的字段名(必须)
用法示例:
获取用户的最大积分:
$maxScore = $User->max(\'score\'); 参考技术AthinkPHP 查询数据库中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)
用这个id查询这条数据就行了; 参考技术C
先给数据库中的这个字段(sort)分组 再降序排列, 取1条
通过步骤1 获取了 sort值为最大的数据, 然后在 通过 where sort ='步骤1取的值'
有别的方法吗?,如果我是查的一个字段值最小的话,要是那最小值有两条数据怎么办
追答不知道你说的什么意思。、
追问如果我查一个表,表有个字段`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的最大值?的主要内容,如果未能解决你的问题,请参考以下文章