Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] UPDATE z wyrażeniem CASE - usuwa dane, gdy warunek niespełniony
guzikowski
post 26.08.2017, 10:45:13
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 26.08.2017

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Pyton_000
post 26.08.2017, 11:12:49
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


No to daj else z wartością kolumny którą zmieniasz.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 00:40