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 の各行に、テーブル 1 (0,1,5,8) に存在する ID からランダムな record_id を割り当てたい。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 に答える