如何在mysql存储过程中生成5个随机数 [英] How to generate 5 random numbers in mysql stored procedure

查看:521
本文介绍了如何在mysql存储过程中生成5个随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何生成5个唯一的随机数?

How can I generate 5 unique random numbers?

现在我有类似的东西

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;

结果看起来像这样:

12|22|3|46|3

数字必须唯一且经过排序,因此看起来像这样:

The numbers need to be unique and sorted so it looks like:

1|2|3|4|5

有什么主意吗?

推荐答案

如果范围很小,并且您有

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;

这篇关于如何在mysql存储过程中生成5个随机数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆