我想在一个查询中更改表的不同列值,这可能吗?
我尝试了这样的事情(只是猜测):
<?php
$q="UPDATE tab SET name='samit' WHERE id='1' && set name='anju' where id='4'";
$run=mysql_query($q);
if($run){
echo 'updated';
}
else{
echo 'update failed';
}
?>
它不工作。我可以使用循环来做到这一点,但循环会增加操作时间。
我想在一个查询中更改表的不同列值,这可能吗?
我尝试了这样的事情(只是猜测):
<?php
$q="UPDATE tab SET name='samit' WHERE id='1' && set name='anju' where id='4'";
$run=mysql_query($q);
if($run){
echo 'updated';
}
else{
echo 'update failed';
}
?>
它不工作。我可以使用循环来做到这一点,但循环会增加操作时间。
你也可以使用JOIN
UPDATE tab t1 JOIN tab t2
ON t1.id = 1 AND t2.id = 4
SET t1.name = 'samit',
t2.name = 'anju'
这是SQLFiddle演示
你可以,但你必须像这样使用案例:
UPDATE tab
SET name = CASE id
WHEN 1 THEN 'samit'
WHEN 4 THEN 'anju'
END
WHERE id IN (1,4);
尽管如此,我还是建议不要这样做,只需循环运行您的查询;此外,不推荐使用 mysql_* 。
这可能不是最好的方法,但是:
UPDATE tab
SET
name= IF(id='1', 'samit', name),
name= IF(id='4', 'anju', name)
UPDATE `tab`
IF(id= 1, "SET name= 'samit'", ''),
IF(id= 4, "SET name= 'anju'", '')
我希望这对你有用。虽然我还没有测试过但是你可以if
在更新查询中使用条件