sql >> Databasteknik >  >> RDS >> Mysql

Använda variabler som OFFSET i SELECT-statement i mysqls lagrade funktioner

I MySQL före 5.5 kan du inte lägga in en variabel i LIMIT klausul i MySQL-lagrade procedurer. Du måste interpolera den till en sträng och sedan köra strängen som en dynamisk fråga.

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. Hur skapar man ett unikt index på en NULL-kolumn?

  2. Vad betyder pooling=false i en MySQL-anslutningssträng?

  3. Anslut till en heroku-databas med pgadmin

  4. Hur man uppgraderar från MariaDB 10.4 till MariaDB 10.5