看起来我需要的是 RAND,但我在理解它的工作原理时遇到了一些麻烦。
我需要在几千行中插入一个 60 到 120 之间的随机数。表名是:listing 列名是:hits
你能帮忙吗?
最佳答案
要生成 60 到 120 之间的随机整数,您需要对 RAND()
的结果做一些算术运算,它只产生浮点值:
SELECT FLOOR(60 + RAND() * 61);
那么这里发生了什么:
RAND()
将产生类似 0.847269199
的值。我们将其乘以 61,得到值 51.83615194。我们添加 60,因为这是您想要的高于零的偏移量 (111.83615194)。 FLOOR()
将整个事情向下舍入到最接近的整数。最后,你有 111。
要对几千个现有行执行此操作:
UPDATE table SET randcolumn = FLOOR(60 + RAND() * 61) WHERE (<some condition if necessary>);
参见 the MySQL docs on RAND()
更多示例。
注意 我认为我的算术正确,但如果您得到超出预期范围的 59 或 121 值,请相应地向上或向下更改 +60
。
关于mysql - 如何将随机值插入到 mysql 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129374/