したがって、リレーショナル データベースには「最後の行」などというものがないことはわかっていますが、自分が何をしたいのかを説明するのにこれ以上の言葉は見つかりませんでした。次のようなテーブルがあります。id
はAUTO_INCREMENT
フィールドで、time
は現在の Unix タイム スタンプです。異なる行に同じタイムスタンプを付けることができることに注意してください。
╔════╦════════════╦════════════╦═════════════╦════════════╗
║ id ║ field_1 ║ field_2 ║ field_n ║ time ║
╠════╬════════════╬════════════╬═════════════╬════════════╣
║ 1 ║ data_field ║ data_field ║ data_field ║ 1369748934 ║
║ 2 ║ data_field ║ data_field ║ data_field ║ 1369748935 ║
║ 3 ║ data_field ║ data_field ║ data_field ║ 1369748936 ║
║ 4 ║ data_field ║ data_field ║ data_field ║ 1369748936 ║
║ 5 ║ data_field ║ data_field ║ data_field ║ 1369748938 ║
║ 6 ║ data_field ║ data_field ║ data_field ║ 1369748939 ║
╚════╩════════════╩════════════╩═════════════╩════════════╝
私がやりたいのは、最高のtime
フィールドから検索を開始する選択です。最低から最高にソートされていることがわかっているWHERE
ので、他のすべての行が一致しないため、最初の行が私の句に一致しないときに検索を停止したいそれも。MySQL はすべての行を検索すると思いますが、データ構造を知っていて、必要なデータの場所を知っているので、テーブル全体を検索する必要はありません。また、 を使用するORDER BY
と、句のすべての内容がWHERE
最初に実行されると思われるため、基本的に行セット全体を検索してから順序付けます。LIMIT
重要なことの 1 つは、句を使用するために取得される行数がわからないことです。
これはクエリの例です。
SELECT fields FROM table WHERE time > timestamp
そのため、特定の日付から現在までのすべての結果を取得したいと考えています。
ご助力ありがとうございます。