PHP の mysql_query コマンドに精通している人なら誰でも、1 回の呼び出しで (; 区切り記号で区切られた) 複数のクエリを実行できないことを知っています...
私の問題は、UPDATEクエリでユーザー変数を定義して、行ごとにインクリメントできるようにしたくないことです(自動インクリメントのようなものです)。次のようになります。
SET @t1=0;
UPDATE `mytable` SET `order` = (@t1:=(@t1+1)) ORDER BY `order` ASC;
私の問題は、変数を定義してから更新を行うことができないため、クエリ内で変数を設定する方法が見つからないことです。それがNULLの場合、私はそれを定義しようとしました:
... `order` = (IFNULL( @t1 := ( @t1 + 1 ) , @t1 := 0 )) ...
しかし、変数が動作する行ごとに変数がリセットされるため、動作しませんでした。
解決策を見ているmysqlに詳しい人はいますか? 前もって感謝します。