MySQL从select中插入随机行
我有一张这样的桌子-MySQL从select中插入随机行,mysql,database,Mysql,Database,我有一张这样的桌子- Users =========== id userid friendid ------------------------------------------------------------------- Friend_Objs ------------------------------------------------------------------- id | friendid | obj_id --
Users
===========
id
userid
friendid
-------------------------------------------------------------------
Friend_Objs
-------------------------------------------------------------------
id | friendid | obj_id
-------------------------------------------------------------------
1 | 123 | aaa
1 | 123 | bbb
1 | 123 | ccc
1 | 456 | abc
1 | 456 | bbb
1 | 456 | cde
还有一个像这样的装置
Game_Objs
===========
id
obj_id
为了进行测试,我需要将Game_Objs中随机数目的obj_id插入到与friendid关联的新表中,如下所示-
Users
===========
id
userid
friendid
-------------------------------------------------------------------
Friend_Objs
-------------------------------------------------------------------
id | friendid | obj_id
-------------------------------------------------------------------
1 | 123 | aaa
1 | 123 | bbb
1 | 123 | ccc
1 | 456 | abc
1 | 456 | bbb
1 | 456 | cde
其中,每个friendid的obj_ID数是随机的
仅使用mysql就可以做到这一点吗?如果不是,用PHP实现它的最佳方法是什么 使用类似以下的方法
$Query = "insert into `Friend_Objs` " .
"values (1, 123, " . substr(str_shuffle("abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"), 0, 3);
将
3
更改为所需字符串的长度。以下是如何快速将600k随机行加载到MySQL表中:()
将其与:
INSERT INTO table(column1, column2 ) SELECT ...
使用上面链接中返回随机行的select查询。I。不管怎么说,我不知道怎么做只有mysql,但使用php它很可能只是在php中对obj_id做一个随机的操作,然后把它放在mysql中执行的Insert查询中。这不是家庭作业,但我的mysql技能绝对是一把需要磨砺的剑。这只是一个测试用例,我们需要从中提取大量数据。在PHP中这样做的问题是,Users表是400k+行,game_objs表是20k,因此PHP需要存储大量数据。我主要是在寻找一个mysql解决方案。谢谢你的回答。对不起,我可能不太清楚,但是Friend_Objs.obj_id必须是Game_Objs.obj_id的值