0

我有以下表格:

表格1:

+-----------+-------------+
| record_id | record_name |
+-----------+-------------+
| 0         | 'test'      |
| 1         | 'test1'     |
| 5         | 'mytest'    |
| 8         | 'ultratest' |
| ....      | ....        |
+-----------+-------------+

表2:

+---------+-----------+
| user_id | record_id |
+---------+-----------+
| 1       | 0         |
| 2       | 0         |
| 3       | 0         |
| 4       | 0         |
| ....    | ....      |
+---------+-----------+

我想为表 2 的每一行分配一个随机的 record_id,从表 1(0,1,5,8)中的 ids 中获取;id 不必是唯一的。

我已经阅读了这个答案,这对这种情况没有好处,因为那里分配的数字是连续的

我如何用 mysql 做到这一点?

4

2 回答 2

0

来自 mysql 文档

要获得R范围内的随机整数i <= R < j,请使用表达式FLOOR(i + RAND() * (j – i))。例如,要获取 range 范围内的随机整数7 <= R < 12,可以使用以下语句:

SELECT FLOOR(7 + (RAND() * 5));
于 2012-09-19T19:29:33.133 回答
0
select t2.user_id, t1.record_id 
from 
    t2
    inner join (
        select record_id
        from t1
        order by rand()
    ) t1 on 1 = 1
group by t2.user_id
于 2012-09-19T19:46:23.810 回答