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)
答案 0 :(得分:2)
SELECT * FROM (SELECT 429 UNION SELECT 529) AS tmp ORDER BY RAND() LIMIT 1
步骤:
答案 1 :(得分:2)
该功能如下(没有UNION
和ORDER
,只有数学且只有一步):
(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