[英]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.