テーブルには自然な行の順序がありません。ORDER BY
を追加しないと、一部のデータベースシステムは実際にクエリを拒否します。 SELECT
の最後にある句
注文が変更されたのはなぜですか?
データベースエンジンは、ストレージからの物理的な順序で行をフェッチするためです。 SQL Serverなどの一部のエンジンは、CLUSTERED INDEX
を持つことができます。 これは物理的な順序を強制しますが、その正確な順序で結果が得られることが実際に保証されることはありません。
クラスター化インデックスは、主に最適化として存在します。 PostgreSQLにも同様のCLUSTER
があります 物理的な順序を変更する関数ですが、テーブルをロックする重いプロセスです: http://www.postgresql.org/docs/9.1/static/sql-cluster.html
行のアルファベット順を強制するにはどうすればよいですか?
ORDER BY
を追加します クエリの句。
SELECT * FROM table ORDER BY column