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

MySQLテーブルの行を並べ替える

    これは2つのステップで行う必要があります:

    UPDATE MyTable 
       SET `Order` = `Order` + 1 
     WHERE `Order` > (SELECT `Order` 
                        FROM MyTable 
                       WHERE ID = <insert-after-id>);
    

    ...これにより、すべての行の注文番号が、後に挿入する人よりもリストのさらに下に移動します。

    次に:

    INSERT INTO MyTable (Name, `Order`)
    VALUES (Name, (SELECT `Order` + 1 FROM MyTable WHERE ID = <insert-after-id>));
    

    新しい行を挿入するには(IDが自動インクリメントであると想定)、後に挿入する人より1つ多い注文番号を使用します。



    1. mysqlPDOLIKEをバインドする方法

    2. PostgreSQL:ブール列のインデックスを作成します

    3. クエリ文字列にもかかわらず、SQLCOUNTを使用すると-1を返すExecuteNonQuery

    4. 警告#1264:mysqlの範囲外エラー