2

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

这是我的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

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

4

2 回答 2

5

您必须MAX()在 SQL 中为选择设置别名,以便在 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;
于 2012-08-17T22:52:58.927 回答
1

SQL 有一个函数调用 max() 并且您在正确的上下文中使用它。你离做对了!

您只需要使用 AS 关键字。

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

于 2012-08-17T22:55:23.617 回答