Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak uproscic zapytanie?
Dagger
post
Post #1





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 4.02.2003
Skąd: Wejherowo

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


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.


--------------------
Pozdrawiam, Wiesław Płotka oraz zapraszam:
Tworzenie portali internetowych
Go to the top of the page
+Quote Post
MoD
post
Post #2





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

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


  1. UPDATE statystyki_pw SET spw_stan = '1' WHERE spw_stan='0'

Może tak??


--------------------
Go to the top of the page
+Quote Post
Dagger
post
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 4.02.2003
Skąd: Wejherowo

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


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.


--------------------
Pozdrawiam, Wiesław Płotka oraz zapraszam:
Tworzenie portali internetowych
Go to the top of the page
+Quote Post
popbart
post
Post #4





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


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.


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post
Dagger
post
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 0
Dołączył: 4.02.2003
Skąd: Wejherowo

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


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.


--------------------
Pozdrawiam, Wiesław Płotka oraz zapraszam:
Tworzenie portali internetowych
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 Aktualny czas: 19.08.2025 - 10:51