thinkphp max方法获取一个int型字段的最大值。我加上where后。发现报错。不知道是否max不支持与where
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp max方法获取一个int型字段的最大值。我加上where后。发现报错。不知道是否max不支持与where相关的知识,希望对你有一定的参考价值。
一块用?
M('xxx')->field("max(somefield)")->where(".....")->find();is this what you want?
不知道你的写法及错误提示是什么?
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 max方法获取一个int型字段的最大值。我加上where后。发现报错。不知道是否max不支持与where的主要内容,如果未能解决你的问题,请参考以下文章
thinkphp5一个表里的字段值就是另一个表里的字段值,怎么获取另一个表的字段值呢
ThinkPHP 模型方法 getField() 和 select() 使用技巧