不确定这是怎么可能的,或者它是否是一个简单的解决方案,我什至不确定它的名称。
我希望将 10,000 行插入到一个数据库中,该数据库具有三列,用于 100x100 的“ map ”区域:
-----------------
| x | y | type |
-----------------
| 1 | 1 | 1 |
-----------------
| 1 | 2 | 1 |
-----------------
| 1 | 3 | 2 |
-----------------
| 1 | 4 | 3 |
-----------------
| 1 | 5 | 4 |
-----------------
| 1 | 6 | 4 |
-----------------
| 1 | 7 | 2 |
-----------------
| 1 | 8 | 2 |
-----------------
| 1 | 9 | 1 |
-----------------
| 2 | 1 | 2 |
-----------------
| 2 | 2 | 1 |
基本上 X 列上升到 100 Y 列上升到 100 所以会有 X:1 Y:1 和 X:100 Y:100 和所有的变化 (10,000) 除此之外,类型列需要是一个介于 1 和 4 之间的随机数。(如果我可以设置每个数字的百分比,这将是理想的,例如 10,000 的 25% 2 是 15%,3 是 40% 和 4 是 20%)。
有没有办法用 MySQL 来生成这个而不是为 10,000 行写一个插入?还是我最好编写某种形式的 PHP 脚本来执行和插入它?
谢谢!
最佳答案
<?php
$values = [];
for ($x = 1; $x <= 100; $x++)
{
for ($y = 1; $y <= 100; $y++)
{
$rand = mt_rand(1, 100);
switch (true)
{
case ($rand <= 25): $i = 1; break;
case ($rand <= 40): $i = 2; break;
case ($rand <= 80): $i = 3; break;
case ($rand <= 100): $i = 4; break;
}
$values[] = sprintf("(%d, %d, %d)", intval($x), intval($y), intval($i));
}
}
$sql = "Insert Into table (x, y, type) Values" . implode(',', $values);
echo $sql;
关于php - MySQL 最多插入 10,000 次随机项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37031153/