2013-08-26 99 views
0

我想在一個查詢中更改表的不同列值,這有可能嗎?用單個查詢更改MySQL中的多個值

我想是這樣的(只是猜測):

<?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'; 
} 
?> 

它不工作。我可以使用循環來做到這一點,但循環會增加操作時間。

回答

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

可以,但你必須使用的情況下,像這樣:

UPDATE tab 
    SET name = CASE id 
     WHEN 1 THEN 'samit' 
     WHEN 4 THEN 'anju' 
    END 
    WHERE id IN (1,4); 

不過,我建議你反對,只是運行一個循環您的查詢;另外,mysql_ *已被棄用。

1

這propably不是但最好的方法:我希望這會爲工作

UPDATE tab 
SET 
name= IF(id='1', 'samit', name), 
name= IF(id='4', 'anju', name) 
0
UPDATE `tab` 
IF(id= 1, "SET name= 'samit'", ''), 
IF(id= 4, "SET name= 'anju'", '') 

您。雖然我還沒有測試過,但您可以在更新查詢中使用if條件