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

Mengambil baris RAND() tanpa ORDER BY RAND() hanya dalam satu kueri

Apakah ada alasan mengapa prosedur tersimpan tidak dapat digunakan untuk membuat pernyataan yang disiapkan?

DELIMITER //
DROP PROCEDURE IF EXISTS rand_quote//
CREATE PROCEDURE rand_quote()
BEGIN
    SET @rand := ROUND((SELECT COUNT(*) FROM quotes) * RAND());
    SET @sql := CONCAT('SELECT * FROM quotes LIMIT ', @rand, ', 1');
    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END;
//
DELIMITER ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan id kenaikan otomatis yang terakhir dimasukkan di mysql

  2. Praktik Terbaik dalam Penskalaan Basis Data:Bagian 1

  3. Ganti Ke Sintaks Kueri

  4. MYSQL:cara menyusun ulang tabel

  5. Masukkan ke dalam tabel MySQL atau perbarui jika ada