Мне нужно экспортировать данные из базы данных с новым случайным полем, отсутствующим в базе данных. Что-то вроде:Создать поле в MySQL SELECT со случайным значением
SELECT field1, field2, rand(1,5) as field3 FROM table
Это возможно?
Мне нужно экспортировать данные из базы данных с новым случайным полем, отсутствующим в базе данных. Что-то вроде:Создать поле в MySQL SELECT со случайным значением
SELECT field1, field2, rand(1,5) as field3 FROM table
Это возможно?
Да, RAND()
возвращает значение от 0 до 1. Используйте математику, чтобы сделать это число в нужном вам диапазоне.
Не ответ MySQL, но могут быть использованы: на SQL Server функция «RAND» требует семена, которые должны отличаться между рядами. Поэтому простой способ может быть:
SELECT field1, field2, rand(id) as field3 FROM table
Это зависит от идентификатор быть доступным, и это также только псевдослучайный; одно и то же значение для поля 3 будет выводиться каждый раз. Чтобы обойти эту проблему, просто приращение идентификатора по значению времени на основе, например, с использованием методы в this post:
SELECT field1, field2, rand(id + datediff(s, '19700101', getdate())) as field3 FROM table
Это даст значение между 0 и 1, и немного простой математикой может затем вынудить, что чтобы быть между 1 и 5, если это то, что требуется.
Вы можете использовать это в MYSQL: -
SELECT field1,field2,CAST((RAND() * 3) + 1 AS UNSIGNED) as Randomnumber from tablename
Он будет генерировать случайное число в заданном диапазоне.
Я решил так:
CEIL (RAND() * 5) AS field3
Спасибо вам всем!