Действительно случайный rand mysql

Статус
В этой теме нельзя размещать новые ответы.

NormIridium

Создатель
Регистрация
17 Апр 2014
Сообщения
29
Реакции
5
Нужно сгенерить несколько тысяч значений ROUND(rand(),4).
При генерации однородность удручает. Очень много повторяющихся одинаковых значений.
Может есть какие то настройки самого мускуля? Сменить метод или ещё что.

UDP: извратился пока что так (выполняю несколько раз с паузами) :

`rand_n`=`rand_n`+ROUND(rand(`a`*1000+`b`+`rand_n`+UNIX_TIMESTAMP()),4);

где a,b,... - колонки с любой целочисленной информацией из этой же таблицы. У меня это показатели упругости грунта и влажность.
UNIX_TIMESTAMP() - текущая метка времени.
rand_n - старое случайное значение с предыдущего прохода.

Выходит вполне сносно...
 
Последнее редактирование:
Для того, чтобы счетчик не выдавал одни и те же значения, используйте randomize перед первым запросом rand.
 
rand(`a`*1000+`b`+`rand_n`+UNIX_TIMESTAMP())

1) вынести это формирование на сторону программной логики (на PHP бекенд, если он используется)
2) пример с dev.MySQL: Для просмотра ссылки Войди или Зарегистрируйсяi)) для получения случайного числа в диапазоне между 'i' и 'j'. Подставьте свои крайние значения и должно быть ок всё.

Что у вас происходит мне сдается неверным, ибо:
Код:
Returns a random floating-point value v in the range 0 <= v < 1.0
У вас же получается всё время число около старого rand_n с разницей, полученной в rand()
 
Мне кажется, или ваше случайное число постоянно увеличивается?
вполне возможно так. Но не было явных копий... а то было жесть: 0,5222 0,5222 0,5222 - подряд.
Зы. скорее всего версия мускула влияет на это дело. Обновился и не жалуюсь больше на генератор.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху