Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] UPDATE z wyrażeniem CASE - usuwa dane, gdy warunek niespełniony
Forum PHP.pl > Forum > Przedszkole
guzikowski
Cześć,
szukam pomocy w moich pierwszych przygodach z sql.
Chcę wykonać update na bazie z wyrażeniem case. Modyfikuje dane w jednej kolumnie, problem jest taki, że gdy w jakimś wierszu warunek do modyfikacji nie jest spełniony, to usuwa mi w nim wartość z modyfikowanej kolumny sad.gif

Do zmodyfikowania bazy używam kodu:
  1. [/sql]UPDATE
  2. tabela_filmow
  3. SET kategoria =
  4. CASE
  5. WHEN dramat = "P" AND ocena = "R"
  6. THEN "dramat-r"
  7. WHEN komedia = "P" AND ocena = "R"
  8. THEN "komedia-r"
  9. WHEN akcja = "P" AND ocena = "R"
  10. THEN "akcji-r"
  11. WHEN krwawy = "P" AND ocena = "R"
  12. THEN "horror-r"
  13. WHEN sf = "P" AND ocena = "R"
  14. THEN "s-f-r"
  15. END
  16. ;[sql]


Podręcznik, z którego korzystam mówi, że jeżeli nie zakończę polecenia klauzulą ELSE i jednocześnie żaden z warunków nie zostanie spełniony, to wartość w kolumnie nie zostanie zmieniona. Cóż, jednak mi zmienia. Gdy zmieniłem typ kolumny `kategoria` tak aby nie przyjmowała wartości NULL, to polecenia w ogóle nie można wykonać.

Moje pytanie brzmi, jak zakończyć to polecenie poprawnie, żeby nie zmieniało wartości w kolumnie, jeśli warunki z wyrażenia CASE nie są spełnione? smile.gif
Pyton_000
No to daj else z wartością kolumny którą zmieniasz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.