- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プライマリーキーの昇順でソートにならないのは?)
プライマリーキーの昇順でソートにならないのは?
このQ&Aのポイント
- PHPで開発中のテーブルが、プライマリーキーの昇順でソートされない問題について質問します。
- 提供されたテーブルの構造を確認し、指定のクエリがIDの昇順になってくれない理由についても詳しく解説します。
- また、提案として、order byを使用する以外に解決策があるのかについても調査し、ご助言します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
殆どのRDBMSでは、以下を保証していません。 (1)「order by」指定なしでのプライマリキー順などの順序保証 (2)「order by」指定なしでの格納順などの順序保証 MySQLでも、「order by」指定なしで、「プライマリキー順になったり、格納順になったり」といったことは、一切保証されていません。 マニュアルにも「order by指定がない場合は、順序保証しない」ことは明記されています。 また、「明記されていないが、実は格納順になるのでは?」というのを実験して、「確実には格納順にならない」という実験結果を公開しているサイトもあります。 例外的にSQL Serverでは、「order by指定なし」でプライマリキー順を保証しているようですが、これは例外中の例外と言えます。
その他の回答 (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 をつけるしかないでしょうね。
質問者
補足
>(16431~16435)までが時間で(1~5)までがIDですよね? いえ、違います。逆です。IDが5ケタの数値のほうです。
お礼
ありがとうございました!