Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [sql] wyzerowanie pol rekordow o id roznym od dluuuuuuuugiej listy, kombinatoryka stosowana
esos
post 22.02.2007, 23:31:50
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 7.08.2005
Skąd: zabrze

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


mam okolo 6k rekordow. w okolo 5400 z nich musze wyzerowac jedno z pol. niestety posiadam tylko id tych rekordow, ktore sa ok czyli ktorym nie trzeba wyczyscic pola. jak ma wygladac takie zapytanie? bo chyba nie moze to byc 600 razy w zapytaniu: ..AND `user.id`!=4987 AND `user.id`!=4992... ?
Go to the top of the page
+Quote Post
yaotzin
post 22.02.2007, 23:44:23
Post #2





Grupa: Zarejestrowani
Postów: 157
Pomógł: 0
Dołączył: 12.02.2007
Skąd: Zielona Góra

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


Wydaje mi się że znajomość samego ID nie wystarczy chyba że jest jakaś reguła występowania tych pól które musisz wyczyścić, np różnica tych id dla pól wynosi 5... czy coś w tym rodzaju, bo musisz chyba podać jakiś warunek wg którego będzie usuwać.... czy tam zerować


--------------------
------
Per Aspera Ad Astra
Go to the top of the page
+Quote Post
Kicok
post 23.02.2007, 10:17:27
Post #3





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


  1. <?php
  2. $dobre_identyfikatory = array(1, 3, 4, 5, 7, 8, 11, 13, 14);
  3. $zapytanie = 'UPDATE `tabela` SET `pole` = 0 WHERE (`ID` NOT IN (' . implode(',', $dobre_identyfikatory) . '));';
  4.  
  5. mysql_query($zapytanie);
  6. ?>


Jeśli będą jakieś kłopoty z tak długim zapytaniem, to możesz rozbić tabelę $dobre_identyfikatory na 10 mniejszych i wykonać 10 zapytań

Ten post edytował Kicok 23.02.2007, 10:18:20


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
chlebik
post 23.02.2007, 11:18:12
Post #4





Grupa: Zarejestrowani
Postów: 113
Pomógł: 5
Dołączył: 12.09.2006
Skąd: Pruszków/Warszawa

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


By powiedzmy na przyszlosc ten skrypt mogl byc uzyty drugi raz to te ID do wyzerowania wrzuc do pliku tekstowego(np. kolejne ID rozdzielone powiedzmy srednikiem). Odczytujesz i na biezaco zamieniasz w bazie. To tylko taki pomysl - nigdy nie operowalem na takich ilosciach danych i nie wiem jak z efektywnoscia takiego rozwiazania. Jesli ktos ma o tym pojecie to niech napisze (najlepiej na PM by nie smiecic).


--------------------
"Człowiek dążący do swego celu może być skuteczny tylko w przypadku, jeśli każdą minutę swego życia wykorzysta z maksymalną korzyścią dla osiągnięcia zaplanowanego celu. Jeśli stworzył dla siebie system kar i karze sam siebie za każdą zmarnowaną minutę. Człowiekowi w zupełności wystarczą 3-4 godziny snu, cały pozostały czas może być wykorzystany dla osiągnięcia upragnionego celu." -- Wiktor Suworow
Java devBlog
KulturalnyChlebik
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: 16.06.2025 - 19:04