Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak uproscic zapytanie?
Forum PHP.pl > Forum > Bazy danych > MySQL
Dagger
Witam!
Mam cos takiego:
Kod
     $zapytanie = "SELECT spw_id FROM statystyki_pw WHERE spw_stan='0' GROUP BY spw_ip ORDER BY `spw_id` ASC;";
    $wykonaj = mysql_query ($zapytanie);
    
    while($wiersz=mysql_fetch_array ($wykonaj))
     {
       $spw_id=$wiersz['spw_id'];
          $update_klikniecia = mysql_query("UPDATE statystyki_pw SET spw_stan = '1' WHERE spw_id = '".$spw_id."'");
    }

czy mozna wykonac to jako jedno zapytanie? np. aby select wyl jako "where" w update?
Bo teraz to mi sie wydaje ze niepotrzebnie jest skomplikowane to ... tzn. podczas wykonywania jednego zapytania co "krok" jest wykonywane jedno nowe.

Z gory dzieki za pomoc.
MoD
  1. UPDATE statystyki_pw SET spw_stan = '1' WHERE spw_stan='0'

Może tak??
Dagger
Nie bardzo ...
bo "GROUP BY spw_ip " sprawia ze sa wyswietlane tylko pierwsze ID z grupy .... dzieki czemy za pomoca polecenia UPDATE i tego ID zaznaczam rekordy w bazie te "orginalne"
Takie usuwanie duplikatow.
popbart
Zależy jakim operujesz. Twórcy MySQL'a dosyć późno się zorientowali że podzapytania to żaden luksus tylko normalna funkcja każdego systemu bazodanowego.
Jeśli 4.1.x to:
  1. UPDATE statystyki_pw SET spw_stan = '1'
  2. WHERE spw_id IN (SELECT spw_id
  3. FROM statystyki_pw WHERE spw_stan='0'
  4. GROUP BY spw_ip)

Pozdrawiam.
Dagger
Wlasnie o cos takiego mi chodzilo i nawet staralem sie cos takiego ulozyc ...
Momo wszystko jak widze to bezcelowe bo mam 4.0.21

Dzieki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.