ďťż

[MySQL] Odejmowanie wartości kilku polom jest to możliwe?

       

Podstrony


telcocafe

UPDATE cats SET num=num-1 WHERE ID=5
Powyższe zapytanie odejmie 1 od liczby zawartości w kategorii o ID 5.

Ważne pola:
ID - ID kategorii
num - liczba zawartości
sc - zawiera ID nadrzędnej kategorii lub wartość "P", jeśli jest podstawowa

Czy możliwa jest zmiana tego zapytania, aby dodatkowo odejmowało 1 od liczby z pola SC w kategoriach nadrzędnych (czyli tych, które w polu ID zawierają pole SC kategorii o ID 5 oraz wszystkich, którym tą wartość odjęto - wyższym kategoriom nadrzędnym)? Trudność polega na tym, że ilość subkategorii jest nieograniczona.



Chodzi o to ,że masz sobie drzewo kategori :
kat_c
---kat
---...
---kat_b
------kat
------ ...
------ kat_a
--------...
--------- kat
---------...
---------kat1
? I jak na przykład w kategorii kat1 odejmiesz od num 1 to w kategoriach kat_a, kat_b, kat_c też ma to odjąć ? Według mnie za jednym zapytaniem tego nie zrobisz. Najpierw musisz zebrać id kategori nadrzędnych do danej (pętlą szukając po kolei w subkategoriach id danej w sc tych kategorii) i dopiero zrobić zapytanie ,które dla danych id kategorii zmieni wartość num ;) No chyba ,że istnieją pętle w zapytaniach mysql :)
Użytkownik .:DzIuDek:. ™ edytował ten post 02 sierpień 2006, 16:06
Próbujesz tworzyć złożony kod nie stosując odpowiednich do tego środków (MVC dla samego kodu) a dla "systemu kategorii" tą są bardzo mądre i sprawne rozwiązania jak drzewka w SQL
http://depesz.com/va...lementation.php
Takie drzewko ułatwia wiele operacji.

Poza tym spróbuj czegoś ala:
UPDATE cats SET num=num-1 WHERE ID = (SELECT id FROM tabela)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.