Mam tę tabelę w mojej bazie danych MySQL, "użytkownicy". Ma pola "id" i "wartość".Aktualizacja wielu wierszy o różnych wartościach
Teraz chcę zaktualizować wiele wierszy w tabeli z kwerendy SQL pojedynczy, ale wiele wierszy powinien dostać inną wartość. Obecnie używam tego:
UPDATE users
SET value = CASE id
WHEN 1 THEN 53
WHEN 2 THEN 65
WHEN 3 THEN 47
WHEN 4 THEN 53
WHEN 5 THEN 47
END
WHERE id IN (1,2,3,4,5)
To działa. Ale czuję, że mógłbym dokonać jakiejś optymalizacji, ponieważ istnieje tylko około 3 lub 4 różne wartości, które przypisuję do wierszy. Jak widać, obecnie są to 47, 53 i 65. Czy istnieje sposób, aby zaktualizować wszystkie wiersze, które otrzymują tę samą wartość jednocześnie w ramach tego samego zapytania? Czy istnieje inny sposób, w jaki mogę to zoptymalizować?
Mogłeś przechowywać mapowanie w osobnej tabeli i dołączyć do to. – Pointy
@Pointy: dlaczego nie umieścić tego jako odpowiedź? – Benoit
@Benoit, ponieważ podczas gdy znam SQL, nie znam MySQL i dlatego nie byłbym w stanie zbudować poprawnego przykładu. – Pointy