7
A
回答
21
为了使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
更改为上或下。
3
这里是如何获得一个范围内的随机数。以下可能会有点模糊,因为61实际上是您的最大值(120)减去您的最小值(60)+ 1以获得包含结果。
SELECT FLOOR(60 + (RAND() * 61));
SELECT FLOOR(MIN_Value + (RAND() * (MAX_Value - MIN_Value) + 1);
http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand
1
UPDATE X SET C = FLOOR(61 * RAND() + 60) WHERE ...;
获得60和120之间的数(包括60和120);
RAND()
在间隔[0; 1)(不包括1)中创建一个数字。所以61 * RAND()在[0,61)中产生一个数字。 61 * RAND()+ 60在[60; 121)通过四舍五入,确保你的号码确实在[60; 120]。
0
当我遇到这种问题,我尝试手动的,但是我有超过500行, 我在逻辑上带来了一招这帮助了我,因为如果你在查询运行RAND, 你可能最终得到错误报告,由于重复或主键问题,特别是如果该列是PRIMARY KEY
和AUTO INCREMENT
。
- 首先 -我改名在问题,例如列矿是ID - > IDS
- 其次 -我创建另一列并把它称为ID
- 第三 -我RAN这个代码
UPDATE历史集ID = FLOOR(217 + RAND()* 2161)
这创造了一个随机数自动,后来我删除重命名的IDS colume
credit from MICHAEL。 谢谢
相关问题
- 1. Mysql插入多行随机值
- 2. 如何插入随机数字MySql
- 3. 如何在SQLite中插入一个唯一的随机整数?
- 4. 用mysql插入随机数
- 5. 插入随机值插入表JS
- 6. 插入随机数到表中MYSQL
- 7. 将N个随机值插入表
- 8. 如何在没有ID的textarea中输入一个随机值?
- 9. 将随机值插入到mysql数据库中
- 10. 插入随机值加在一起的所有值
- 11. 如何在表中插入一个值?
- 12. 随机数插入MySQL的不工作
- 13. 如何插入一个数字电流值在mysql中列
- 14. 如何将随机值插入到SQL Server表中?
- 15. 如何创建一个随机bit64值
- 16. 随机从一个MySQL表
- 17. 如何编写一个将随机值插入整数堆栈的函数?
- 18. 如何从复选框插入多个值和在MySQL插入
- 19. 如何在一次插入执行中在mysql中插入数组或多值
- 20. 随机插入和随机旋转
- 21. 如何插入随机数一气呵成在SQL
- 22. 如何将唯一随机整数插入链表中?
- 23. 将唯一的随机数插入到一个向量中
- 24. 如何将多个值插入MYSQL?
- 25. 在foreach循环中插入随机块
- 26. 在mysql中插入一系列值
- 27. 使用RAND()插入随机值的SQL插入 - 插入到TINYINT中?
- 28. 在mySql查询中获取随机值
- 29. 如何在mysql插入查询中插入变量值?
- 30. 从表中选择一个随机值,基于另一个随机值
这只会产生[0; 120]中的数字 - 您需要乘以61. – emboss
@emboss它产生了[60:119],而不是[0:120],但您对于61乘数 –
哎呀,是的:)我会纠正这一点...似乎我不能再。 – emboss