1

次のフィールドを持つ MySQL テーブルがあります。

Email, Flag1, Flag2

質問: 最後の 100 個の挿入されたフィールドを取得するために選択を行う方法はありますか?

私が理解しているように、テーブルの最後に単純な「挿入」を使用して新しいレコードを追加することにより、テーブルにデータが入力されます。

私はPHP + MySQLでそれを行う方法を考えています(非常に醜い方法:SELECT ALL RECORDSphpループで自動インクリメントされたIDを各レコードに割り当て、最後の100レコードを取得します。

純粋なMySQLでそれを行うよりエレガントな方法はありますか?

4

2 に答える 2

2

id行を識別する一意の方法 ( anや aなど) がなければ、最後に挿入されたレコードを取得する方法はありません。これはdate、インデックスが主キーに基づいて並べ替えられるためです (Emailこの場合を想定)。

于 2012-09-07T18:25:32.053 に答える
1

タイムスタンプまたは自動インクリメントでフィールドを設定しないと、システムは最後に挿入されたものをどのように知るのでしょうか? 2つの簡単なオプションがあります。

  • タイムスタンプ フィールドを作成します。select * from yourtamble order by timefield desc limit 100

  • 自動インクリメントで ID を作成します。これの良い点は、主キーを持ち、リストが挿入された正確な順序を知ることができることです。これの悪い点は、データがいつ挿入されたかを知るために別のフィールド時間が必要になることです. あなたが作ることができるタイムスタンプソリューションとしてselect * from yourtamble order by id desc limit 100

于 2012-09-07T19:36:10.180 に答える