1

特定の順序でデータ行を挿入する必要があります。時間通りに行を挿入するのを忘れて、後で挿入しなければならないことがあります。ただし、他の行がその場所を占めており、今まで手動で(もちろんプログラムで)さまざまな数の行のインデックスを変更しています-数行または数百行になる可能性があります。これはあまり効率的ではなく、別の方法を探していました。私の考えは、日付で並べ替え、「日のインデックス」番号を作成してその日のレコードのみを並べ替えることでしたが、私はさまよっていました...行を並べ替えるmysqlの方法はありますか? これは、必要な行の位置を mysql に通知し、主キーを更新させるためですか?

4

2 に答える 2

1

あなたが考えていることは、実際には解決策です。まだ作成していない場合は日付列を作成し、そのフィールドにインデックスを作成し、クエリで Order by も使用します。手動以外の方法はありません。たとえあったとしても、MYSQL の行の保存方法で遊ぶことはお勧めしません。行の保存は DB エンジンによって行われ、行を最良の方法で保存するため、それらを操作するのは理想的ではないからです。最適な方法なので、なぜそのような小さなことで効率を台無しにするのですか。

于 2013-08-05T07:43:29.747 に答える
1

テーブルのデザインを検討する必要があると思います。これは、最初に対処されているため、実際にはほとんどのアプリケーションにとって問題ではありません。

ここで、DateTime 列をテーブルに追加し、既存のデータに適した値で初期化する必要があります。新しい行が追加されたら、新しい各行の DateTime 列を実際の DateTime に設定します。遅れて行を追加する必要がある場合は、DateTime をレコードが追加されるべき時間に設定します。

テーブルをクエリするときは、ORDER BY myDateTime(または、あなたがそれを呼び出すことに決めたもの)を使用してください。行が正しい順序で表示されるはずです。

小さなテーブル (数千行未満) の場合、インデックスはあまり役に立ちません。大きなテーブルの場合は、DateTime 列にインデックスを付ける必要があります。何が最適かを確認するには、いくつかのテストを実行する必要があります。

于 2013-08-05T08:45:23.133 に答える