Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] Warunkowe wykonanie czesci zapytania
Bojakki
post 5.05.2006, 21:35:42
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Mma takie zapytanie:

  1. $query = mysql_query("SELECT news.title, news.news, news.object<span style="font-weight: bold;">, object.name
  2. FROM news,
  3. object
  4. WHERE news.id = $wsk<span style="font-weight: bold;"> AND news.object = object.id");
  5. $news = mysql_fetch_row($query);


Co zrobic by pogrubiona czesc zapytania wykonywala sie tylko wtedy gdy wartosc 'news.object' jest rozna od zera?


--------------------
Go to the top of the page
+Quote Post
piotrekkr
post 5.05.2006, 22:22:33
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 25
Dołączył: 28.09.2005

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


  1. $query = mysql_query("SELECT news.title, news.news, news.object, object.name
  2. FROM news,
  3. object
  4. WHERE news.id = $wsk AND news.object = object.id" AND news.object!=0);
  5. $news = mysql_fetch_row($query);


o to chodzi czy zle zrozumialem questionmark.gif
Go to the top of the page
+Quote Post
Bojakki
post 6.05.2006, 06:41:13
Post #3





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Nie o to bo tutaj po prostu calkowicie minie rekord tam gdzie to pole jest rowne 0, a mi chodiz o to zeby wedy nie wykonalo calosci zapytania (tej pogrubionej czesci)


--------------------
Go to the top of the page
+Quote Post
Master Miko
post 6.05.2006, 09:50:22
Post #4





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Po co bawić się w to na poziomie SQL, jeżeli można to 1000000000000 razy łatwiej zrobić na poziomie php!

Są jakieś specjalne powody? Możesz pokazać kod php?
Jeśli są... to podaj snitch.gif


--------------------
Go to the top of the page
+Quote Post
orson
post 6.05.2006, 12:08:00
Post #5





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

oczywiście że są ... wydajność, wygoda, wyraźne oddzielenie danych od logiki - od db oczekujesz gotowego wyniku, a nie czegoś do obrabiania ...

o takie coś chodzi questionmark.gif jak coś to spróbuj z RIGHT JOIN
  1. SELECT news.title, news.news, news.object, object.name
  2. FROM news
  3. LEFT JOIN object ON (news.object = object.id AND news.id = $wsk)


pozdrawiam


--------------------
Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
Go to the top of the page
+Quote Post
Master Miko
post 6.05.2006, 13:37:13
Post #6





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Jak bardzo obciążają MySQL pytania tego typu? Może to dziwne pytanie, ale pierwszy raz się spotykam z takim śmiesznym rozwiązaniem smile.gif
a samo w sobie jest rzeczywiście jest całkiem logiczne.

a btw, do czego i w jakich przypadkach używa się takich zapytań? Moja wiedza jest baaaardzo mizerna jeśli chodzi o Mysql tongue.gif


--------------------
Go to the top of the page
+Quote Post
orson
post 6.05.2006, 21:25:32
Post #7





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

dlaczego śmiesznych questionmark.gif to jest standardowe, zgodne z sql zapisanie joina ... wydajnościowo jest pewnie to samo co wymienienie po przecinku ale do ON można dodać więcej warunków i taki zapis jest czytelniejszy - można wymienić warunki przy nazwie tabeli

@Bojakki: chcesz żeby object.name zawierał nazwę tylko jeżeli istnieje on w tabeli objects questionmark.gif to chyba nawet twoje zapytanie to robiło ... ale masz w nim byka ... cudzysłów przed ostanim AND nie wywala ci czasem błędu questionmark.gif

pozdrawiam


--------------------
Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
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: 22.06.2025 - 19:51