Mysql更新使用限制


Mysql Update using limit

我有这样的代码

$sql="select * from wifi where status!='off' limit 0, $limit";
$result=mysql_query($sql);
$i=1;
while($row=mysql_fetch_array($result)){
echo $i.") ".$row["user"]." - ".$row["password"]."<br/>";
$i++;
}

现在我想用status=off

更新从输出中得到的行

我想使用

$sql="Update wifi Set staus='off' limit 0,6"

但是行不通

$sql="Update wifi Set staus='off' WHERE id IN (
select id from wifi where status!='off' limit 0, $limit
)"

用各自的名称更正您的id字段

状态的拼写不正确以及只是限制数量

$sql="Update wifi Set status='off' limit 6"

试试这个…

UPDATE wifi SET staus='off'
  WHERE id IN (
         SELECT id FROM wifi LIMIT 0, 6
     ) temp
 );

您缺少where条件:

Update wifi
    Set status = 'off'
    where status <> 'off'
    limit 0, 6;

但是,这不能保证更新select返回的相同行。SQL不能保证两次运行相同的查询会返回相同的行——除非您使用ORDER BY。因此,两个查询都应该在LIMIT之前有一个ORDER BY

此外,您应该停止使用mysql_函数,并切换到mysqli_.