如何在mysql中插入随机值?

And*_*ndi 8 mysql random insert

看起来兰德是我需要的,但我在理解它是如何工作时遇到了一些麻烦.

我需要在60到120之间插入几千行的随机数.表名是:列表,列名是:命中

能否请你帮忙?

Mic*_*ski 22

要生成60到120之间的随机整数,需要对结果进行一些算术运算,结果RAND()只生成浮点值:

SELECT FLOOR(60 + RAND() * 61);
Run Code Online (Sandbox Code Playgroud)

那么这里发生了什么:

RAND()会产生像这样的价值0.847269199.我们乘以61,这给我们的值51.83615194.我们加60,因为这是你想要的偏移量高于零(111.83615194).FLOOR()将整个事物舍入到最接近的整数.最后,你有111.

要在几千个现有行中执行此操作:

UPDATE table SET randcolumn = FLOOR(60 + RAND() * 61) WHERE (<some condition if necessary>);
Run Code Online (Sandbox Code Playgroud)

有关更多示例,请参阅MySQL文档RAND().

注意我认为我有算术权,但是如果你得到59或121的值超出预期范围,则相应地改变+60向上或向下.


Bue*_*ler 5

以下是如何获取范围内的随机数。以下可能有点含糊不清,因为 61 实际上是您的最大值 (120) 减去您的最小值 (60) + 1 以获得包含结果。

SELECT FLOOR(60 + (RAND() * 61));

SELECT FLOOR(MIN_Value + (RAND() * (MAX_Value - MIN_Value) + 1);
Run Code Online (Sandbox Code Playgroud)

http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand