Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Get N rand values and append some predefined row...
- -- Usage: CALL getRandRows(NUM_OF_RAND_ROWS, PREDEFINED_ID);
- -- DROP PROCEDURE IF EXISTS getRandRows;
- -- CREATE PROCEDURE getRandRows(IN retCount INT, IN predefinedID INT)
- BEGIN
- DROP TEMPORARY TABLE IF EXISTS `tmp_randrows`;
- CREATE TEMPORARY TABLE `tmp_randrows` (
- `tmp_id` INT(6)
- );
- leWildLoop:
- LOOP
- IF retCount < 1 THEN
- LEAVE leWildLoop;
- END IF;
- INSERT INTO `tmp_randrows`
- SELECT rnd1.`id` FROM `quotes` AS rnd1 JOIN (SELECT (RAND() * (SELECT MAX(`id`) FROM `quotes`)) AS `id`) AS rnd2 WHERE rnd1.`id` >= rnd2.`id`
- ORDER BY rnd1.`id` ASC LIMIT 1;
- SET retCount = retCount - 1;
- END LOOP leWildLoop;
- INSERT INTO `tmp_randrows` SELECT `id` FROM `quotes` WHERE `id` = predefinedID;
- SELECT * FROM `tmp_randrows`;
- END
- -- by lauda
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement