Nja, men jag menade mer uppdatera 2 fält where id = 1
sedan uppdatera två ändra fält där id är något annat.
Typ:
UPDATE tabell SET fältn1=fältn1+1 WHERE id=1, SET fältn2=fältn2+1 WHERE id=7
Min fråga är alltså om detta går att uppdatera olika fält från olika poster i samma sql-sats och i så fall hur skriver man det med "set" och kommatecken osv.
UPDATE tabell
SET
fältn1 = case when id = 1 then fältn1 + 1 else fältn1 end,
fältn2 = case when id = 7 then fältn2 + 1 else fältn2 end
WHERE id in (1,7)
fungerar bra i de flesta dbms (dock ej Access där man får använda iif istället).
Hänger faktiskt inte riktigt med i koden måste jag säga men jag ska testa när jag kommer hem om ngn timme. Tack för hjälpen, jag hör av mig ikväll om jag inte får ihopa det...
UPDATE tabell
SET
fältn1 = iif(id = 1,fältn1 + 1,fältn1),
fältn2 = iif(id = 7,fältn2 + 1,fältn2)
WHERE id in (1,7)
Är det så att LarsGs variant funkar, men du förstår den inte? :q
I så fall:
iif(villkor, om_sant_gör_detta, annars_gör_detta)
Dvs om id = 1 eller id=7 så görs två saker, annars inga.
fältn1 kommer att bli ett större om id = 1, annars sätts den till det värde den hade från början - alltså ingen ändring.
fältn2 kommer att bli ett större om id = 7, annars sätts den till det värde den hade från början - alltså ingen ändring.