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


Getting the Max value of a column in a database table

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

这是我的PHP:

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

所以应该得到id的当前版本,然后更新它,但添加1。但当数据库中当前最高的是1 时,$st['version']似乎正在返回0

我做错了吗?有更好的方法来存档吗?

您必须在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;

SQL有一个函数调用max(),您正在正确的上下文中使用它。你差一点就做好了!

您只需要使用AS关键字。

remembers中选择max(version)作为max_version,其中id='$id'