获取数据库表中列的最大值

时间:2012-08-17 22:51:29

标签: php mysql sql

我正在尝试获取数据库表中列的最大值。

这是我的PHP:

$st = mysql_fetch_assoc(mysql_query("SELECT max(`version`) FROM `remembers` WHERE id='$id'"));
$version = $st['version'] + 1;

因此,应该获取当前版本的id,然后更新它,但添加1。但$st['version']似乎在数据库中返回时0当前最高为1

我这样做错了吗?有没有更好的存档方式?

2 个答案:

答案 0 :(得分:5)

您必须在SQL中为MAX()选择设置别名,以便在PHP中引用它:

SELECT max(`version`) AS version FROM ...

此外,mysql_fetch_assoc返回一个数组数组,因此您不能直接引用$st['version']。相反,您可以将PHP更改为:

$st = mysql_fetch_row(mysql_query("SELECT max(`version`) AS version FROM `remembers` WHERE id='$id'"));
$version = $st[0] + 1;

答案 1 :(得分:1)

SQL有一个函数调用max(),你在正确的上下文中使用它。 你是如此接近于正确行事!

您只需要使用AS关键字。

SELECT max(version)AS max_version FROM remembers WHERE id ='$ id'