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()PHPで参照するには、SQLで選択のエイリアスを作成する必要があります。

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 has a function call max() and you are using it in the right context. You are so close to doing it right!

You just need to use the AS keyword.

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

于 2012-08-17T22:55:23.617 に答える