我想在一个查询中更改表的不同列值,这可能吗?
我试过这样的事情(只是一个猜测):
<?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';
}
?>
它不起作用。我可以使用循环来完成此操作,但循环会增加操作时间。
答案 0 :(得分:2)
你可以,但你必须使用这样的案例:
UPDATE tab
SET name = CASE id
WHEN 1 THEN 'samit'
WHEN 4 THEN 'anju'
END
WHERE id IN (1,4);
不过,我建议不要这样做,只需用循环运行你的查询;另外,不推荐使用mysql_ *。
答案 1 :(得分:2)
您也可以使用JOIN
UPDATE tab t1 JOIN tab t2
ON t1.id = 1 AND t2.id = 4
SET t1.name = 'samit',
t2.name = 'anju'
这是 SQLFiddle 演示
答案 2 :(得分:1)
这可能不是最好的方式,但是:
UPDATE tab
SET
name= IF(id='1', 'samit', name),
name= IF(id='4', 'anju', name)
答案 3 :(得分:0)
UPDATE `tab`
IF(id= 1, "SET name= 'samit'", ''),
IF(id= 4, "SET name= 'anju'", '')
我希望这对你有用。虽然我尚未对其进行测试,但您可以在更新查询中使用if
条件