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

Brug af variabler som OFFSET i SELECT-statments inde i mysqls lagrede funktioner

I MySQL før 5.5 kan du ikke indsætte en variabel i LIMIT klausul i MySQL-lagrede procedurer. Du skal interpolere den til en streng og derefter udføre strengen som en dynamisk forespørgsel.

SET rand_offset = FLOOR(RAND() * (SELECT COUNT(*) FROM all_words));
SET @sql = CONCAT('SELECT word INTO str_rnd_word FROM all_words LIMIT 1 OFFSET ', rand_offset);
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;



  1. Sammenligning af DBaaS-failoverløsninger med manuelle gendannelsesindstillinger

  2. datetime vs datetimeoffset i SQL Server:Hvad er forskellen?

  3. MySQL &PHP decimal præcision forkert

  4. Hvordan kører man en lagret procedure hver dag i SQL Server Express Edition?