MYSQL从列表中随机插入

时间:2009-08-19 18:54:20

标签: mysql random

我想在表中添加一个随机值。虽然我知道如何在一个范围内添加随机整数,但我目前难以理解如何从列表中添加随机选择的项目。

假设我有一个用于IM帐户的MYSQL表。我想用随机数据填充它。

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

这个查询应该做的是在IM表中添加联系人的姓氏,并从我给出的数组中随机选择。例如,数组将是:

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

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

注意:我知道这完全可以使用PHP,Perl等编程语言,但我并不是想这样做。请尝试使用MYSQL严格执行此操作。

2 个答案:

答案 0 :(得分:61)

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

答案 1 :(得分:8)

如果您愿意将服务添加到另一个表格中......

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