Ответ 1
INSERT INTO `im`
(`im`, `service`)
SELECT LOWER(`last`),
ELT(0.5 + RAND() * 6, 'AIM', 'ICQ', 'MSN', 'Yahoo', 'GTalk', 'Other')
FROM `contact`
Я хотел бы добавить случайное значение в таблицу. Хотя я знаю, как добавлять случайные целые числа в пределах диапазона, я в настоящее время тупик о том, как добавить случайно выбранный элемент из списка.
Скажем, у меня есть таблица 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.
INSERT INTO `im`
(`im`, `service`)
SELECT LOWER(`last`),
ELT(0.5 + RAND() * 6, 'AIM', 'ICQ', 'MSN', 'Yahoo', 'GTalk', 'Other')
FROM `contact`
Если вы хотите добавить службы в другую таблицу...
INSERT INTO `im` ( `im` , `service` )
SELECT LOWER( `last` ) , (
SELECT `service`
FROM `service`
ORDER BY RAND( )
LIMIT 1
)
FROM `contact`