最も単純なMySQLループ

今日、サイトでの作業中に、メインディレクトリを追加のディレクトリから分離する必要がありました。 また、追加カタログでは、「プロジェクト1」、「プロジェクト2」の形式で必要なエントリに番号を付ける必要がありました。 そして、いくつかの未知の獣は、いくつかの一般的なプログラミング言語でそれを迅速に行うことを許可しませんでした。 試してみたかったのですが、MySQLの手段のみを使用してこれを行うことは可能ですか?
私が覚えている限り、MySQLには変数があります。たとえば、@ aです。 しかし、MySQLでのループ方法に関するWeb検索では何も得られませんでした。
そして、私たちは書くことができるので、と思いました
SELECT @i:=@i+1; 

そして、UPDATEは、各レコードを順番に調べ、値を1つずつ置き換えます。
 SELECT @i := 0; UPDATE `table` SET `name`=CONCAT(' ', @i := @i+1) WHERE `type` = 1 ORDER BY `id`; 

その結果、IDの順にタイプ1のレコードの名前を変更しました。
PS:CONCATは文字列を連結します。


Source: https://habr.com/ru/post/J150491/


All Articles