Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 518 Pomógł: 18 Dołączył: 21.07.2008 Ostrzeżenie: (0%)
|
Witajcie.
Mialem do zrealizowania nastepujace zadanie: tabela MySQL miala nastepujaca strukture: cat_id(int) - id kategorii, cat_name(varchar50) - nazwa kategorii cat_parent(int) - id kategorii nadrzednej, jesli 0 to kategoria glowna cat_position(int) - jesli jest kilka kategorii to ta kolumna mowi o pozycji cat_dir(int) - 0 oznacza ze w tej kategorii nie ma innych kategorii, 1 oznacza ze w tej kategorii sa inne kategorie. Z innej bazy danych ajaxem importowalem dane do powyzszej tabeli a do kolumny cat_dir wpisywane bylo zero. Teraz nalezalo jedynie zaktualizowac kolumne cat_dir aby bylo wiadomo czy kategoria zawiera inne kategorie. Zrobilem to tak: SELECT cat_id, cat_parent FROM kategorie $id=$wiersz['cat_id'] SELECT cat_id FROM kategorie WHERE cat_parent='$id' $liczba=mysql_num_rows($result) if($liczba>0 || cat_parent==0) UPDATE kategorie SET cat_dir=1 To rozwiazanie dziala ale jest koszmarnie wolne. Wykonanie tego kartezjanu trwa kilka minut (okolo 50 000 rekordow w bazie). Zastanawiam sie czy jest jakis szybszy sposob na wykonanie tego zadania? pozdrawiam Grzegorz |
|
|
|
elmozaur [PHP][MySQL] sprawdzenie wszystkich rekordow i ich aktualizacja 31.12.2010, 16:18:09
IceManSpy A nie lepiej jest zrobić UPDATE kategorie SET cat_... 31.12.2010, 17:36:21
elmozaur to jest rozwiazanie poprawne ale tylko dla kategor... 31.12.2010, 18:22:50
wookieb [SQL] pobierz, plaintext UPDATE kategorie SET cat_... 31.12.2010, 18:49:21
elmozaur indexy sa tyko na cat_id
czy na pozostale kolumny ... 1.01.2011, 13:11:19
wookieb na cat_parent też się przyda. Ale oczywiście wszys... 1.01.2011, 13:21:48 ![]() ![]() |
|
Aktualny czas: 21.12.2025 - 18:18 |