我正在尝试获取数据库表中列的最大值。
这是我的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
我做错了吗?有没有更好的存档方法?
您必须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;
SQL 有一个函数调用 max() 并且您在正确的上下文中使用它。你离做对了!
您只需要使用 AS 关键字。
SELECT max( version
) AS max_version FROM remembers
WHERE id='$id'