2013-08-26 6 views
0

Je souhaite modifier différentes valeurs de colonne d'une table dans une requête, est-ce possible?Modification de plusieurs valeurs dans MySQL avec une seule requête

J'ai essayé quelque chose comme ça (juste une supposition):

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

Il ne fonctionne pas. Je peux le faire en utilisant une boucle, mais une boucle augmentera le temps de fonctionnement.

Répondre

2

Vous pouvez également utiliser JOIN

UPDATE tab t1 JOIN tab t2 
    ON t1.id = 1 AND t2.id = 4 
    SET t1.name = 'samit', 
     t2.name = 'anju' 

est ici SQLFiddle Démo

2

Vous pouvez, mais vous devrez utiliser le cas comme ceci:

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

encore, je vous recommande contre elle et il suffit d'exécuter vos requêtes avec une boucle; De plus, mysql_ * est obsolète.

1

Il est propably pas la meilleure façon, mais:

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'", '') 

J'espère que cela fonctionnerait pour toi. Bien que je ne l'ai pas encore testé, mais vous pouvez utiliser la condition if dans la requête de mise à jour

Questions connexes