PHPのmysql_query()関数を使用してmysqlテーブルを更新する必要があります。したがって、1つのステートメントで次のUPDATEクエリを送信する必要があります。
SET @i = 0;
UPDATE mytable SET id=(@i:=@i+1);
次のようなテーブルエイリアスを使用してSELECTステートメントでこれを実行できるいくつかの例を読みました。
SELECT @rn:=@rn+1 AS rank, t1.* FROM (SELECT * FROM mytable) t1, (SELECT @rn:=0) t2
使用する必要のあるUPDATEステートメントでこれらのテーブルエイリアスを使用する方法はありますか?
編集:
Topher Huntの回答に基づいて、次を使用してmytableのコピーを作成できると思います。
CREATE TABLE mytable_copy SELECT @ rn:= @ rn + 1 AS id、t1。* FROM(SELECT * FROM mytable)t1、(SELECT @rn:= 0)t2
次に、mytableを削除し、mytable_copyの名前をmytableに変更します。
このステートメントは、mytableにあるものと同じフィールドタイプと長さで、mytableの正確なコピーを作成しますか?