如何获得两个具体数字的随机数?

时间:2018-01-24 12:25:05

标签: mysql

E.g。

第一个数字是:429
第二个数字是:529

所以我想用这样的方式编写mysql查询,它应该给我429或529。

我在谷歌搜索了这个,但它显示随机数作为范围的结果。

任何帮助将不胜感激。

修改

我真正的要求是:

INSERT INTO table1(table2_id, status, stage, added_by)
(SELECT id, 'Pending', 'Semifinal', RAND(SELECT 429 UNION SELECT 529) FROM table2)

3 个答案:

答案 0 :(得分:2)

SELECT * FROM (SELECT 429 UNION SELECT 529) AS tmp ORDER BY RAND() LIMIT 1

步骤:

  1. 选择429和529
  2. 应用随机订单
  3. 返回第一个结果

答案 1 :(得分:2)

该功能如下(没有UNIONORDER,只有数学且只有一步):

(ROUND(RAND()) * 100) + 429

(FLOOR(0 + (RAND() * 2)) * 100) + 429

请参阅MySQL docs

<强>所附

给出问题的一般答案(从任意两个整数:x:y中选择一个随机整数):

(FLOOR(0 + (RAND() * 2)) * (:y - :x)) + :x

这种方式不会创建mem表,也不会对其中的行进行排序和/或获取其中一个随机行。

答案 2 :(得分:0)

这些数据是否放在表格中?那么这样的事情可能有用:

SELECT number FROM table ORDER BY rand() LIMIT 1