PHP技术 获取数据库中某个字段的最大值(int类型)并将获得的最大值与另一个值比较大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP技术 获取数据库中某个字段的最大值(int类型)并将获得的最大值与另一个值比较大小相关的知识,希望对你有一定的参考价值。

php技术 获取数据库中某个字段的最大值(int类型)并将获得的最大值与另一个值比较大小,如果表中的值大则这个值加1,如果相比较的值大,则返回这个相比较的值。
请大家多多指教!

参考技术A select case
when a.maxnum > 另一个值 then a.maxnum+1

when a.maxnum < 另一个值 then 另一个值

end
from ( select max(字段) as maxnum from table) a

只能在php中查出来追问

请问这样写哪里有错误呢:
if(MAX($row['ziduan'])<$bijiaozhi)
$huoquzhi=$bijiaozhi;

else
$huoquzhi=$row['ziduan']+1;

追答

1.什么错误??最好能贴出来
2.MAX($row['ziduan']) 这是什么??MAX是函数吗??

if($row['ziduan']<$bijiaozhi)
$huoquzhi=$bijiaozhi;

else
$huoquzhi=$row['ziduan']+1;

$row['ziduan'] 是你从数据库取得最大值

追问

row['ziduan']是我数据库里某个表的一个字段,当我写入一条新数据时,要通过获取这个字段的最大值与我的另一个存放最大值的表里的值相比较,如果这个字段的值比那个相比较的值大,那写入的值就是这个字段的最大值加1,如果小则直接写入相比较的那个值,MAX($row['ziduan'],这样写能否获取到这一列的最大值吗,因为我这套程序时后台执行的,没有错误提示,只是这样写执行程序数据库里没有能写入数据,请多多指教

追答

1.写入数据前,先写一个sql用于获取字段最大值,然后再做比较,取到真正要插入的值
2.插入数据库
MAX($row['ziduan'], 这样是不能取到最大值的

追问

请问如何获取字段最大值,请赐教

追答

select max(字段) as maxnum from table
这个就是取到这个字段最大值

追问

sql语句获取到最大值后,然后再怎么比较呢?谢谢

追答

$res = mysql_query('select max(字段) as maxnum from table');
这是取出最大值
if($row['maxnum ']<$bijiaozhi)
$huoquzhi=$bijiaozhi;

else
$huoquzhi=$row['maxnum ']+1;


然后比较 取到 $huoquzhi
然后是插入数据库
mysql_query('insert into table ...');

本回答被提问者采纳
参考技术B select max(字段) from table追问

请问这样写哪里有错误呢:
if(MAX($row['ziduan'])<$bijiaozhi)
$huoquzhi=$bijiaozhi;

else
$huoquzhi=$row['ziduan']+1;

追答

MAX($row['ziduan']) ,这个$row['ziduan'] 只是一个值,不需要用MAX
直接判断就可以

追问

请问一列中有很多值,如何取一列中的最大值啊?

追答

你可以排下序,然后取出来的结果集,第一个就是了!

PHP代码中如何查询MYSQL数据库可以得到数据表中某个字段中最大的那条记录的ID号。 举例说明:见问题补充。

我的数据库名:date,数据表名:music,字段名:title;
目前一共有三条数据如下:
ID title name
2 离别 12354
15 朋友 5454
161 送别 4668

要求通过php代码查询mysql数据库并输出所有数据中ID号最大的记录中的ID号;

注明:方法简单实用,最佳答案要求可以找到某个专项函数,并且代码不能很多,最好一个函数搞定。

不能实用一下方法:
1、***** order by id limit 1 ;
2、for 或者 while 循环;
3、count();
不能使用:

mysql_fetch_array(mysql_query("select * from music order by id desc limit 1"));

我是这样做的测试:
create table music(
id varchar(10),
title varchar(100),
name varchar(10)
);
insert into music values('2','离别','12354');
insert into music values('15','朋友','5454');
insert into music values('161','送别','4668');

<?php
$conn=mysql_connect("localhost:3307","数据库用户名","数据库密码");
mysql_select_db("date");
$result=mysql_query("select max(id+0) max_id from music",$conn);
$field=mysql_fetch_row($result);
print_r($field);
?>
结果:Array ( [0] => 161 )
因为mysql中varchar不能用max()所以通过id+0来转换id类型从而解决这个问题 ,如果你建表时id是整数型的就可以直接用max()了。详细解释见:http://hb.qq.com/a/20110624/000061.htm。
参考技术A select max(id) from `tableName`
select * from `tablename` where id=(select max(id) from `tableName`)
参考技术B select * from music t where t.id = (select max(id) from music) 参考技术C select id from music where id=(select max(id) from music)

以上是关于PHP技术 获取数据库中某个字段的最大值(int类型)并将获得的最大值与另一个值比较大小的主要内容,如果未能解决你的问题,请参考以下文章

PHP代码中如何查询MYSQL数据库可以得到数据表中某个字段中最大的那条记录的ID号。 举例说明:见问题补充。

oracle中怎么取某个字段值的前面数据

用PHP查询mongo数据时,条件是某个字段(A为数组)不为空,但是有的记录中并没有字段A,这个条件怎么写?

在SQL中,如何查询某一字段中最大值的数据

SQL:如何取得分组中某个字段为最大值的那些记录

thinkphp max方法获取一个int型字段的最大值。我加上where后。发现报错。不知道是否max不支持与where