• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プライマリーキーの昇順でソートにならないのは?)

プライマリーキーの昇順でソートにならないのは?

このQ&Aのポイント
  • PHPで開発中のテーブルが、プライマリーキーの昇順でソートされない問題について質問します。
  • 提供されたテーブルの構造を確認し、指定のクエリがIDの昇順になってくれない理由についても詳しく解説します。
  • また、提案として、order byを使用する以外に解決策があるのかについても調査し、ご助言します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

殆どのRDBMSでは、以下を保証していません。 (1)「order by」指定なしでのプライマリキー順などの順序保証 (2)「order by」指定なしでの格納順などの順序保証 MySQLでも、「order by」指定なしで、「プライマリキー順になったり、格納順になったり」といったことは、一切保証されていません。 マニュアルにも「order by指定がない場合は、順序保証しない」ことは明記されています。 また、「明記されていないが、実は格納順になるのでは?」というのを実験して、「確実には格納順にならない」という実験結果を公開しているサイトもあります。 例外的にSQL Serverでは、「order by指定なし」でプライマリキー順を保証しているようですが、これは例外中の例外と言えます。

deck_hiromi
質問者

お礼

ありがとうございました!

その他の回答 (2)

  • calltella
  • ベストアンサー率49% (317/635)
回答No.2

逆でしたか・・・失礼しました。 ですが、結果は同じです。 後から追加したのが最新なので上になります。

  • calltella
  • ベストアンサー率49% (317/635)
回答No.1

------------ 16435 5 xxx 16434 4 xxx 16433 3 xxx 16432 2 xxx 16431 1 xxx (16431~16435)までが時間で(1~5)までがIDですよね? 後から追加したのが最新なので上に来るのではないですか? 降順にするのにはorder by をつけるしかないでしょうね。

deck_hiromi
質問者

補足

>(16431~16435)までが時間で(1~5)までがIDですよね? いえ、違います。逆です。IDが5ケタの数値のほうです。

関連するQ&A