我正尝试使用PHP for循环更新我的表,但它需要很长时间才能工作。我的桌子上真的有200,000
人。当我打开php文件时,浏览器字面上会自己:)当我打开phpMyAdmin时,我可以看到它的工作,但非常缓慢。使用PHP for循环的SQL更新花费太长时间
有没有办法使用SQL直接在phpMyAdmin中完成同样的事情?
for ($a = 0; $a < 200000; $a++) {
$rand = mt_rand(10000000, 99999999);
// checks whether the same url exists or not
$sec = "SELECT person_url FROM person WHERE person_url = '$rand'";
$result = $sqli->query($sec);
$row = $result->fetch_assoc();
$finish = $row['person_url'];
if ($finish == false) {
$sql = $sqli->prepare("UPDATE person SET person_url = '$rand' WHERE person_id = '$a'");
$sql->execute();
}
}
您应该只准备一次该语句,然后在循环中执行它。 – Barmar
[MySQL查询为每行分配一个唯一的随机数]的可能重复(http://stackoverflow.com/questions/602952/mysql-query-to-assign-a-unique-random-number-to-each-行) –