MYSQL插入从列表中随机(MYSQL insert random from list)

2019-07-01 19:59发布

我想一个随机值添加到表。 虽然我知道怎样的范围内添加随机整数,我目前难倒如何从列表中添加随机选择的项目。

比方说,我有一个MySQL表为IM帐户。 我想用随机的数据来填充它。

INSERT INTO `im` (`im`, `service`)
SELECT LOWER(`last`), RANDOM-SELECTION-HERE
FROM `contact`;

什么这个查询应该做的是加入到IM表中的联系人的姓从一个数组我想给随机选择。 例如,该阵列将是:

['AIM', 'ICQ', 'MSN', 'Yahoo', 'GTalk', 'Other']

所以,我想添加的用户的姓氏加上从数组中随机项目之一。

注: 我知道这是完全可能的编程语言如PHP,Perl等,但我并不想这样做。 请尽量提供一种方式来与MYSQL严格做到这一点。

Answer 1:

INSERT INTO `im`
(`im`, `service`)
SELECT LOWER(`last`),
    ELT(0.5 + RAND() * 6, 'AIM', 'ICQ', 'MSN', 'Yahoo', 'GTalk', 'Other')
FROM `contact`


Answer 2:

如果你愿意的服务添加到另一个表...

INSERT INTO `im` ( `im` , `service` )
SELECT LOWER( `last` ) , (
   SELECT `service`
   FROM `service`
   ORDER BY RAND( )
   LIMIT 1
)
FROM `contact`


文章来源: MYSQL insert random from list
标签: mysql random