ugrás a tartalomhoz

SET - WHERE többször?

mahoo · 2010. Jan. 23. (Szo), 13.18
Sziasztok, meg lehet azt valahogyan oldani, hogy EGY sql paranccsal UPDATE-eljek több rekordot? Méghozzá úgy, hogy... de inkább mutatok egy példát, ami persze rossz de könnyebb elmagyaráznom:

UPDATE tabla SET nev='Pista' WHERE id_tag='1', SET nev='Jóska' WHERE id_tag='2'...

Azaz több értéket szeretnék módosítani, de minden egyes értéket más feltételhez kötnék.
Létezik erre megoldás vagy hülyeséget kérdezek?
Ja, és nem szeretnék mondjuk 50 sql parancsot futattni egymás után, persze, ezért is kérdezek!
 
1

Sajnos nem lehetsséges.

gphilip · 2010. Jan. 23. (Szo), 16.55
http://dev.mysql.com/doc/refman/5.0/en/update.html
2

Köszi a választ! kár... :(

mahoo · 2010. Jan. 23. (Szo), 20.25
Köszi a választ! kár... :(
3

replace

gphilip · 2010. Jan. 23. (Szo), 20.36
Ha viszont a where egy primary key-t vizsgál, akkor használhatod a REPLACE-t, mert itt, csakúgy mint az isnertnél, beszúrhatsz több rekordot egyetlen lekérdezéssel.
4

Szerintem lehetséges

jaczkog · 2010. Jan. 25. (H), 19.34

UPDATE tabla
  SET nev = CASE id_tag
              WHEN '1' THEN 'Pista'
              WHEN '2' THEN 'Jóska'
              ELSE nev
            END
;
5

igen

gphilip · 2010. Jan. 26. (K), 02.44
igen, csak nem ez volt a kérdés szerintem :)
6

Nem, tényleg másról

mahoo · 2010. Jan. 26. (K), 20.18
Nem, tényleg másról érdeklődtem, de azért köszönöm a szándékot!

Egyébként úgy oldottam meg, hogy amikor SELECT-tel listázom az adatokat összeállítok egy ID listát, amit egy rejtett inputban átadok és a form eküldésekor törlök a lista alapján. Majd az új értékeket egyetlen egy INSERT-tel beletöltöm a táblába. Nem elegáns megoldás de megy :).

Próbáltam használni az 'INSERT ... ON DUPLICATE KEY UPDATE'-t is ami jól működik amíg csak egy sort/rekordot szúrok be. Amint a VALUES után több (),()... rekord is szerepel akkor már nem müxik.

Bár a lényeg, hogy végülis megoldódott :).
7

Replace

gphilip · 2010. Jan. 26. (K), 20.49
"Próbáltam használni az 'INSERT ... ON DUPLICATE KEY UPDATE'-t is ami jól működik amíg csak egy sort/rekordot szúrok be. Amint a VALUES után több (),()... rekord is szerepel akkor már nem müxik."

Erre való a REPLACE :)
8

Jaaaa :) akkor most már

mahoo · 2010. Jan. 27. (Sze), 10.42
Jaaaa :) akkor most már jobban utána nézek. Akkor ez tuti jó lesz, 1000 köszönet!