繁体   English   中英

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

[英]How to update multiple random entries in one column at once in mysql?

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

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

您还可以使用MySQL的RAND()函数:

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

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

我认为您想稍微改变一下逻辑:

首先使用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");

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM