select * from ABC where column_value=1;
クエリでは返された行の並べ替えが指定されていません。
SQLは、タプルのセットを処理する言語であり、a setは、定義上、順序付けされていないアイテムの集合です。
ある状況下では、あるデータベースエンジンまたは別のデータベースエンジンが特定の順序(行番号PK
f.e.でソート)で行を返すという事実は実装の詳細です。言語によって必須ではなく、いつでも変更できます。
さらに、クエリで返される行の順序が指定されていない場合、データベースエンジンはどのような方法であっても高速に取得するのに適した方法を使用します。順序は外部要因に依存する可能性があり、時間とともに変化する可能性があります。たとえば、クエリから返された行をテーブルから削除してから別の順序で挿入すると、同じクエリを後で実行すると、以前とは異なる順序で行が返される可能性があります。
小さい表の上にORDER BY
句を含まない問合せについての洞察(正確でも信頼性もない)として、データベースは表のデータ内に見つかった順序で行を戻しますインデックスを読み取ることはありません。
小さいテーブルの場合、エンジンは不要なときにインデックスの読み込みをスキップし、テーブルのデータに直接進みます。このようにして、処理に追加の価値を提供しないディスクアクセスが不要になります。
「column_value」で示される列はどれですか? – 1000111
"order by"を使用してinorderを取得する – jophab
プライマリキーをAUTO_INCREMENTに設定しましたか?そうでない場合は、手動で入力した場合、そのような出力が生じる可能性があります。 –