首页 > 解决方案 > 使用随机数更新电话类型列中的 5500 个字段的脚本

问题描述

我需要创建一个 php7 脚本,以生成 5500 个随机电话号码,以示例编号 3“3471239900”开头。该脚本应该去覆盖已经存在的数据。

/**
 * genera numero tel casuale che inizia per 3
 */
function telefono()
{
    $telefono = '';
    for ($k=0; $k<9; $k++) {
        //genera casuale 9 cifre
        $telefono .= rand(0, 9);
    }

    //inizia per 3
    return '3' . $telefono;
}

$res = mysqli_query($conn, 'SELECT id_com FROM commesse ORDER BY id_com');
while ($riga = mysqli_fetch_assoc($res)) {
    $id = (int)$riga['id_com'];
    $query = "UPDATE commesse SET cliente=tel='".telefono()."' WHERE id_com=" . $id_com;
}

标签: mysqliphp-7

解决方案


您不需要发明这样的代码来用随机数填充数据库表中的单个列。

以下更新语句将使用 10 位随机数填充表的cliente_tel列,commesse所有数字均以3.

UPDATE
  `commesse` 
SET
  `cliente_tel` = CONCAT("3",ROUND(RAND()*(999999999-100000000)+100000000)) 
WHERE 1;

在这里使用ROUND()是必要的,因为RAND()0返回一个介于和之间的浮点数1

谨记:在循环中运行任何类型的更新/插入语句总是昂贵且缓慢的。尽量避免在循环中运行 SQL 查询。


推荐阅读