ďťż

[mysql] update limit

       

Podstrony


telcocafe

mam w bazie z newsami 648 rekordów... jest tam kolumna 'kom' odpowiadająca za zamykanie mozliwości komentowania newsa jeśli przyjmuje wartość 'N'. jest 643 rekordy z wpisaną wartością 'N' i 5 najnowszych z wpisaną wartością 'T' (komentarze dozwolone). przy dodawaniu każdego kolejnego newsa ustawiana jest dla niego wartość 'T' a następnie wykonywane jest polecenie
UPDATE newsy SET kom = "N" WHERE kom = "T" limit ???
gdzie ??? to ilość wszystkich rekordów minus 5. i tu jest problem: dlaczego w tym momencie baza ustawia wartość 'N' we wszystkich rekordach zamiast pozostawić 5 najnowszych bez zmiany? kiedy sprecyzuję zapytanie i wpiszęUPDATE site_newsy SET kom = "N" WHERE kom = "T" limit 0,???
to wysypuje błąd <_<

a może jest jakiś inny sposób na aktualizację określonego przedziału rekordów?



ponieważ po dodaniu nowego newsa w tabeli masz tylko 6 rekordów z wartością "T" a ty aktualizujesz (wszystkie - 5) co powoduje że wszystkie "T" ci sie na "N" zamieniają
to jest błąd logiczny
limit powinien wynosić 1 czyli tyle ile w danej chwili newsów dodałeś

ahh.. no tak... dobra juz kapuje - mój błąd. no i to jest rozwiązanie na jeden ostatni rekord, a teraz: jak sformułować zapytanie aby baza ustawiła każde 'T' na 'N' we wszystkich rekordach oprócz 5-ciu ostatnich... :> bo to mnie bardziej interesuje


mam w bazie z newsami 648 rekordów

jest 643 rekordy z wpisaną wartością 'N' i 5 najnowszych z wpisaną wartością 'T'
masz już 643 rekordy z 'N' i 5 najnowszych z 'T'
dodajesz nowego newsa
czyli masz: 649 rekordów
w tym 643 z 'N' i 6 z 'T'
i robisz zapytanie takie jak napisałem tylko i wyłącznie na najstarszy z tych 6 rekordów - 1 x UPDATE zamieniający 'T' na 'N'

teraz masz:
- 649 rekordów
- 644 z 'N'
- 5 z 'T'

czyli tak jak chciałeś :)



no ok ok. czaje o co Ci chodzi... ale mi chodzi o to co zrobić jakby np w tabeli znajdował się rekord 16 i przypadkiem był ustawiony na 'T'. jak mam 648 rekordów to jakie machnąć zapytanie aby baza sobie wśród pierwszych 643 wyszukała wartość 'T' i ustawiła ją na 'N' :> ?
Użytkownik sdr edytował ten post 20 sierpień 2005, 10:09

no ok ok. czaje o co Ci chodzi... ale mi chodzi o to co zrobić jakby np w tabeli znajdował się rekord 16 i przypadkiem był ustawiony na 'T'. jak mam  648 rekordów to jakie machnąć zapytanie aby baza sobie wśród pierwszych 643 wyszukała wartość 'T' i ustawiła ją na 'N' :> ?

nooo... i działa :) o to mi chodziło. thx... gdybyś nie naprowadził mnie na właściwy tor pewnie jeszcze kilka dni bym nad tym myślał ;) :] danke danke

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

  • Sitedesign by AltusUmbrae.