sql >> Database >  >> RDS >> Mysql

RAND()-rijen ophalen zonder ORDER BY RAND() in slechts één zoekopdracht

Is er een reden waarom een ​​opgeslagen procedure niet kan worden gebruikt om een ​​voorbereide instructie te maken?

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. Nieuwe instantie van MySQL instellen wat is het huidige rootwachtwoord?

  2. Wat is er nieuw in SQL Server 2019?

  3. Bereken MD5-hash van een UTF8-tekenreeks

  4. Hoofdlettergebruik van persoonsnamen in programmeren