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

Cara memilih catatan satu per satu tanpa mengulangi

Karena SELECT adalah operasi atom, saya rasa tidak ada solusi yang mudah. Saya juga melihat dua masalah berbeda yang perlu dipecahkan:

memilih satu baris tanpa mengulangi yang ditampilkan. Pada dasarnya Anda perlu menyimpan baris terakhir yang ditampilkan di suatu tempat. Jika Anda memiliki beberapa aplikasi, yang menyimpan status saat ini, mungkin ini merupakan opsi, untuk menyimpannya sebagai variabel eksternal. Solusi sketsa dilakukan di MySQL 5.0+:

Pertama siapkan pernyataan yang akan dieksekusi nanti dan atur posisi awal untuk kueri:

PREPARE STMT FROM 'SELECT id, name FROM customer LIMIT ?, 1';
SET @pos = 0;

Anda mungkin ingin menambahkan urutan defautl untuk mendapatkan hasil yang andal. Setiap kali Anda ingin mendapatkan satu baris, jalankan pernyataan dengan

EXECUTE STMT USING @pos; 
SELECT count(*) FROM customer INTO @max; 
SET @pos=(@pos+1)%@max;

Hal lainnya adalah, Anda ingin membaca posisi acak. Satu-satunya solusi yang saya lihat sekarang, adalah membuat tabel sementara yang menyimpan konten dari pelanggan yang dipesan secara acak atau Anda membuat tabel sementara yang menampung semua angka dari 0[email protected] dan membaca posisi saat ini di tabel utama dari tabel sementara. Jika Anda memiliki aplikasi di luar MySQL, mungkin ada cara yang lebih elegan untuk menyelesaikannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. operasi hapus kunci seluruh tabel di innodb

  2. Metode kutipan PDO

  3. Manajemen pengguna MySQL

  4. Bagaimana cara mengimpor data dari file teks ke database mysql

  5. apa itu java.io.EOFException, Pesan:Tidak dapat membaca respons dari server. Diharapkan untuk membaca 4 byte, membaca 0 byte