sql >> Databáze >  >> RDS >> Mysql

Načítání řádků RAND() bez ORDER BY RAND() v jediném dotazu

Existuje důvod, proč nelze k vytvoření připraveného příkazu použít uloženou proceduru?

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. Nápověda k případu aktualizace MySQL

  2. SQL Server:Jak získat referenci na cizí klíč z information_schema?

  3. Připravenost na COVID-19 ve ScaleGrid

  4. Spusťte skript/příkaz Shell z MySQL Trigger/Uložené procedury