php - MySQL 最多插入 10,000 次随机项?

标签 php mysql

不确定这是怎么可能的,或者它是否是一个简单的解决方案,我什至不确定它的名称。

我希望将 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/

相关文章:

php - Laravel 4 中使用分组信息进行多对多选择

mysql - Roambi ES4 和 mysql 连接不上

php - 将图像插入到 Prestashop 数据库

php - 如何在 MySQL 中更新序列化数据

php - MySQL current_timestamp - 时间戳抛出错误的结果

MySQL存储过程返回值

mysql join 选择最低价格设置标志

php - 需要数据库架构疯狂的最佳方法

mysql - Node js和mysql中的多个查询

javascript - 外部 javascript 文件中的 php