2010-08-24 23 views
0

Je souhaite mettre à jour une colonne dans une table, en fonction du minimum d'une autre colonne de la même table.Mise à jour avec un Min dans la table

par ex.

JobPositonId | JobPositonName | JobDescriptionId | ContactId 
1   | 1    | 1    | 1 
2   | 1    | 1    | 0 
3   | 1    | 1    | 0 

Je souhaite mettre à jour ContactId pour être 1, s'il est 0 et où JobPositionId est le plus bas.

Répondre

1

Je pense que cela devrait fonctionner:

update jobTable 
    set contactid = 1 
where jobPostitionId in (select pos from (select min(jobPositionId) as pos from jobTable where contactId = 0) as subtable); 

Il est en quelque sorte un hack similaire à ce qui est décrit ici (http://www.xaprb.com/blog/2006/06/23/how-to-select-from-an-update-target-in-mysql/).

+0

IMPRESSIONNANT, merci beaucoup pour ça !!! –

+0

Cela a-t-il fonctionné pour ce dont vous aviez besoin? (Il est toujours difficile de savoir quand la base de données n'est pas configurée pour tester localement.) – MikeTheReader