sql >> Database teknologi >  >> RDS >> Mysql

Henter RAND() rækker uden ORDER BY RAND() i kun én forespørgsel

Er der en grund til, at en lagret procedure ikke kan bruges til at oprette en forberedt erklæring?

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. Hvorfor er InnoDB-tabelstørrelsen meget større end forventet?

  2. Hvordan får man eksportoutput i ægte CSV-format i SQL Server Management Studio?

  3. Vis data fra database ved hjælp af basisadapter og listevisning

  4. mysqldump hele strukturen, men kun data fra udvalgte tabeller i en enkelt kommando