Banyak jawaban di sini mengatakan hal yang sama (urutan kenaikan otomatis Anda), yang OK, asalkan Anda memiliki kolom peningkatan otomatis yang diindeks.
Di samping catatan, jika Anda memiliki bidang dan itu adalah kunci utama, tidak ada penalti kinerja untuk menggunakan order by
versus select max(id)
. Kunci utama adalah bagaimana data disusun dalam file database (setidaknya untuk InnoDB), dan RDBMS tahu di mana data itu berakhir, dan itu dapat mengoptimalkanorder by id + limit 1
untuk menjadi sama dengan mencapaimax(id)
Sekarang jalan yang jarang dilalui adalah ketika Anda tidak memiliki kunci primer yang ditingkatkan otomatis. Mungkin kunci primer adalah kunci alami, yang merupakan gabungan dari 3 bidang ... Namun tidak semua hilang. Dari bahasa pemrograman Anda bisa mendapatkan jumlah baris terlebih dahulu
SELECT Count(*) - 1 AS rowcount FROM <yourTable>;
dan kemudian gunakan nomor yang diperoleh di LIMIT
klausa
SELECT * FROM orderbook2
LIMIT <number_from_rowcount>, 1
Sayangnya, MySQL tidak akan mengizinkan sub-kueri, atau variabel pengguna dalam LIMIT
klausa