How can I generate 5 unique random numbers?
Now I have something like
declare v_counter integer;
declare v_random integer;
declare v_result varchar(10);
select FLOOR(1+(rand()*50)) into v_result;
set v_counter=0;
while v_counter < 4 then
select FLOOR(1+(rand()*50)) into v_random;
set v_result = concat(v_result,'|',v_random;
v_counter = v_counter + 1;
end while;
The result can look like this:
12|22|3|46|3
The numbers need to be unique and sorted so it looks like:
1|2|3|4|5
Any idea?
If your range is small, and you have an integers table, a naive approach might work:
SELECT GROUP_CONCAT(i SEPARATOR '|')
FROM ( SELECT i
FROM ( SELECT i
FROM integers
WHERE i BETWEEN 1 AND 50
ORDER BY RAND()
LIMIT 5) sort_these_five
ORDER BY i) concat_these_five;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With