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

Použití proměnných jako OFFSET v příkazech SELECT uvnitř uložených funkcí mysql

V MySQL před verzí 5.5 nemůžete vložit proměnnou do LIMIT klauzule v uložených procedurách MySQL. Musíte jej interpolovat do řetězce a poté řetězec spustit jako dynamický dotaz.

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. Při pohledu na výkon snímku databáze

  2. Jak vybrat všechny sloupce v SQL kromě jednoho sloupce?

  3. vyberte rownum z platu kde rownum=3;

  4. MySQL Workbench nemůže načíst soubor mysql.proc