テーブルの主キーである自動番号による select ステートメントの結果の並べ替えに興味があります。
最終的に、テーブルから最新のレコードを選択しようとしていORDER BY DateTime DESC
ますORDER BY Id DESC
。
最も高い番号の自動番号/主キーが最後のレコードになると仮定するのは悪い習慣ですか?
ありがとうガレス
テーブルの主キーである自動番号による select ステートメントの結果の並べ替えに興味があります。
最終的に、テーブルから最新のレコードを選択しようとしていORDER BY DateTime DESC
ますORDER BY Id DESC
。
最も高い番号の自動番号/主キーが最後のレコードになると仮定するのは悪い習慣ですか?
ありがとうガレス
最も高い番号の自動番号/主キーが最後のレコードになると仮定するのは悪い習慣ですか?
最後に挿入されたレコード
を意味する場合、それはまともなアプローチです- autonumber
「逆方向」には決してなりません(ただし、以下で説明するように負になる可能性があります)。
ただし、正しい答えを変更する可能性がある、指定していないいくつかのエッジ ケースがあります。
DateTime
値が同じ場合はどうなるでしょうか。それらは両方とも「最後の」レコードと見なされますか?DateTime
(たとえば、外部ソースからのインポートや 2 つのデータセットのマージなど)。編集
コメントと投票に基づいて、「最後の」レコードを決定するための自動インクリメント フィールドが最善の解決策ではないことに同意するために、回答を修正しています。推薦するのが間違っている可能性があるケースが多すぎます。
全体として、「最後」の定義が「最も高いDateTime
値を持つレコード」である場合は、それを使用してください。
DateTime
その列に対するクエリを大幅に高速化するインデックスを追加できます。