2013-06-28 3 views

ответ

3

Да, RAND() возвращает значение от 0 до 1. Используйте математику, чтобы сделать это число в нужном вам диапазоне.

MySQL RAND Documentation

0

Не ответ 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, если это то, что требуется.

0

Вы можете использовать это в MYSQL: -

SELECT field1,field2,CAST((RAND() * 3) + 1 AS UNSIGNED) as Randomnumber from tablename 

Он будет генерировать случайное число в заданном диапазоне.

0

Я решил так:

CEIL (RAND() * 5) AS field3

Спасибо вам всем!