1

指定した列 (ユーザー名など) でテーブルの行を並べ替え、その主キー値を再割り当てしてから、テーブルの内容を並べ替えた値に置き換える方法はありますか?

4

1 に答える 1

2

はい、MySQL には、ファイル内の行のテーブル ソートを決定する方法があります。テーブルがMyISAMタイプの場合は、次を実行できます。

ALTER TABLE `users` ORDER BY `username`;

テーブルはユーザー名でソートされます。これにより、ファイル内の行の順序が修正され、ファイル自体がファイルシステムで断片化される可能性があり、 ALTER TABLEでそれに対処することはできません。マニュアルから:

ORDER BY を使用すると、行を特定の順序で並べた新しいテーブルを作成できます。挿入と削除の後、テーブルはこの順序のままではないことに注意してください。このオプションは、主に、ほとんどの場合、特定の順序で行をクエリすることがわかっている場合に役立ちます。テーブルに大きな変更を加えた後にこのオプションを使用すると、パフォーマンスが向上する場合があります。場合によっては、後で並べ替えたい列によってテーブルが並べ替えられていると、MySQL の並べ替えが容易になることがあります。

ただし、ソートされたリストの最初のユーザーが 1、2 などになるように、数値の主キーを再配置したい場合は、そうしないでください。割り当てられた主キーには絶対に触れないでください。

于 2011-11-04T04:58:13.377 に答える