sql >> データベース >  >> RDS >> Mysql

SELECTとUPDATEを使用したMySQLのループを使用して、テーブルを並べ替えます

    SELECT @p:=0, @parent:=0;
    UPDATE page p1
    JOIN
    ( SELECT title, 
      CASE WHEN @parent<>parent_id THEN @p:=0 ELSE @p:[email protected]+1 END as position,
      @parent:=parent_id as parent_id
      FROM page
      ORDER BY parent_id, title DESC ) p2
    ON p1.title = p2.title AND p1.parent_id = p2.parent_id
    SET p1.position = p2.position
    

    (parent_id、title)ペアが一意でない場合は、主キーを結合条件として使用します。括弧内に選択するには、主キーを追加する必要があります。



    1. 無料で広く使用されているトップ18のオープンソースNoSQLデータベース

    2. C#からSQL Serverを呼び出すときに、いつ再試行するか失敗するかを知っていますか?

    3. Ubuntuサーバー17.04php7およびapache2でoci8.soをロード中にエラーが発生しました

    4. MySQLのVARCHARとTEXT