Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tìm nạp các hàng RAND () mà không cần ORDER BY RAND () chỉ trong một truy vấn

Có lý do gì khiến một thủ tục đã lưu trữ không thể được sử dụng để tạo một câu lệnh chuẩn bị không?

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. Thủ tục được lưu trữ trong MySQL gây ra `` Lệnh không đồng bộ hóa ''

  2. Hàm MySQL CRC32 () - Ví dụ

  3. Hàm Isset () trả về true ngay cả khi mục không được đặt

  4. mysql - bao nhiêu cột là quá nhiều?

  5. mysql chọn int làm tiền tệ hay chuyển đổi int sang định dạng tiền tệ?