我正在尝试获取数据库表中列的最大值。
这是我的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
我这样做错了吗?有没有更好的存档方式?
答案 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'