Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL :ambil banyak pilihan dengan potongan

Anda dapat mencoba menggunakan LIMIT fitur. Jika Anda melakukan ini:

SELECT * FROM MyTable ORDER BY whatever LIMIT 0,1000

Anda akan mendapatkan 1.000 baris pertama. LIMIT pertama nilai (0) mendefinisikan baris awal di set hasil. Ini diindeks nol, jadi 0 berarti "baris pertama". LIMIT kedua value adalah jumlah maksimum baris yang akan diambil. Untuk mendapatkan 1.000 set berikutnya, lakukan ini:

SELECT * FROM MyTable ORDER BY whatever LIMIT 1000,1000 -- rows 1,001 - 2,000
SELECT * FROM MyTable ORDER BY whatever LIMIT 2000,1000 -- rows 2,001 - 3,000

Dan seterusnya. Ketika SELECT tidak mengembalikan baris, selesai.

Ini tidak cukup dengan sendirinya, karena setiap perubahan yang dilakukan pada tabel saat Anda memproses 1K baris sekaligus akan membatalkan pesanan. Untuk membekukan hasil tepat waktu, mulailah dengan mengkueri hasil ke dalam tabel sementara:

CREATE TEMPORARY TABLE MyChunkedResult AS (
  SELECT *
  FROM MyTable
  ORDER BY whatever
);

Catatan tambahan:sebaiknya pastikan tabel sementara tidak ada sebelumnya:

DROP TEMPORARY TABLE IF EXISTS MyChunkedResult;

Bagaimanapun, setelah tabel sementara berada di tempatnya, tarik potongan baris dari sana:

SELECT * FROM MyChunkedResult LIMIT 0, 1000;
SELECT * FROM MyChunkedResult LIMIT 1000,1000;
SELECT * FROM MyChunkedResult LIMIT 2000,1000;
.. and so on.

Saya akan menyerahkannya kepada Anda untuk membuat logika yang akan menghitung nilai batas setelah setiap potongan dan memeriksa hasil akhir. Saya juga merekomendasikan potongan yang jauh lebih besar dari 1.000 catatan; itu hanya nomor yang saya ambil dari udara.

Terakhir, sebaiknya hapus tabel sementara setelah Anda selesai:

DROP TEMPORARY TABLE MyChunkedResult;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bagaimana cara menjalankan skrip python dari kueri mysql?

  2. cara mendapatkan semua hasil tuple mysql dan mengonversi ke json

  3. Float atau desimal untuk harga?

  4. PHP MYSQL PDO SUM kolom

  5. PHP Mengurutkan koordinat terdekat