用mysql插入随机数
我对mysql主要有一个疑问。我有以下几点:用mysql插入随机数
mysql_query("INSERT INTO {$game}_ships (location,login_id
) values(
'250','44')");
我想打的位置,从2随机数到300
等等我的表结构包括位置和登录ID列,我不需要提其他列,因为它们是静态的,不会更改。上述内容是为了使船看起来像它在系统中移动。
location int(4)
任何人都可以帮忙吗?
mysql_query("INSERT INTO {$game}_ships (location,login_id
) values(
FLOOR(RAND() * 298 + 2),'44')");
参见:http://dev.mysql.com/doc/refman/5.0/en/mathematical-functions.html#function_rand
以上是给我一个0位置。 – user631756 2012-02-03 21:24:54
然后,您的列数据类型可能有问题。你可以编辑你的问题向我们展示表格结构吗? – Mchl 2012-02-03 21:27:49
我已更新问题并再次进行测试。结果是0.我有一个位置0的问题,它不存在。大声笑 – user631756 2012-02-03 21:45:48
您可以使用这样的事情:
INSERT INTO TABLE_NAME(rand_col) VALUES(FLOOR($MIN_VAL + (RAND() * ($MAX_VAL - $MIN_VAL))));
哪里MIN_VAL
是你的下数(2)和MAX_VAL
是你的高数(300)
它不是一个随机列,我试图随机化一个插入,使它看起来像一艘船在四处移动。 – user631756 2012-02-03 21:33:52
My例如,这是一个插入,MIN_VAL和MAX_VAL只是占位符:'mysql_query(“INSERT INTO {$ game} _ships(location,login_id )values( FLOOR(2 +(RAND()*(300 - 2 ))),'44')“);'这和你的答案一样 – rcdmk 2012-02-04 20:57:42
你可以用PHP的rand来代替吗?
mt_rand(2,300)
我的猜测都回答随机没有工作,因为我仍然得到一个0系统 – user631756 2012-02-03 21:48:45
你可以输出mt_rand的结果来确保它工作? – 2012-02-03 21:54:20
mt_rand的作品,但它并没有在数据库中插入一个有效的整数,它恢复到默认值,即0。 – user631756 2012-02-03 22:13:50
参见:http://stackoverflow.com/questions/984396/how-to-get-mysql-random-integer-range - '(FLOOR(2 + RAND()* 300))' – 2012-02-03 21:19:11
可能[MySQL获取两个值之间的随机值]的副本(http://stackoverflow.com/questions/6550155/mysql-get-a-random-value-between-two-values) – Mchl 2012-02-03 21:21:07
这将生成一个介于2和302.你必须从乘法中减去最大值的最小值,就像我在我的答案中发布的那样。 – rcdmk 2012-02-03 21:22:33