我正嘗試使用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-行) –