如何在mysql中一次更新一列中的多个随机条目?

时间:2015-07-21 13:30:16

标签: javascript php mysql

我希望更新stemp列中的值,但所有值必须不同且在30到70之间随机。

for($i=0;$i<=30;$i++)
{
    $temp= mt_rand(30,70);
    mysqli_query($con,"UPDATE sensor SET stemp= $temp");
}

2 个答案:

答案 0 :(得分:2)

您还可以使用MySQL的RAND()功能:

mysqli_query($con, "UPDATE sensor SET stemp=ROUND(RAND() * 40) + 30");

将此放入循环中也没有意义,因为您似乎在更新语句中没有任何类型的WHERE条件,因此每次都会更新所有记录。

答案 1 :(得分:1)

我想你想改变一下你的逻辑:

首先使用range()创建一个30 - 70的数组。然后shuffle()数组并从中获取array_slice()。有了这个,你有30个元素,你可以循环更新你的数据库条目。像这样:

<?php

    $arr = range(30, 70);
    shuffle($arr);
    $update = array_slice($arr, 0, 30);

    foreach($update as $v)
        mysqli_query($con, "UPDATE sensor SET stemp = $v");

?>