Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] OR z logiki, W MySQL OR działa inaczej
thomas2411
post 8.10.2009, 21:41:49
Post #1





Grupa: Zarejestrowani
Postów: 108
Pomógł: 7
Dołączył: 15.05.2005
Skąd: Rzeszów

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


Witam

W logice przy sprawdzaniu warunku p OR q, jeżeli p jest prawdą, q nawet nie jest sprawdzane.

Jak takie coś osiągnąć w MySQL? Bo tam działa to tak, że nawet jak p jest prawdą, to i tak jeszcze jest sprawdzane q

Ten post edytował thomas2411 9.10.2009, 10:13:16
Go to the top of the page
+Quote Post
Largo
post 8.10.2009, 22:43:14
Post #2





Grupa: Zarejestrowani
Postów: 203
Pomógł: 6
Dołączył: 11.09.2005

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


Witam,

Pomyliło Ci się OR ( alternatywa ) z AND ( koniunkcją ). To w koniunkcji jeżeli warunek nie jest dokonany nie sprawdza drugiego. Alternatywy używasz do sprawdzania w celu np. błędu.

Na dodatek polecam przeczytanie dokumentacji MySQL.

Pozdrawiam,
Largo

Ten post edytował Largo 8.10.2009, 22:50:20
Go to the top of the page
+Quote Post
dr_bonzo
post 8.10.2009, 23:43:31
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


@Lagro - cos zes namieszal.
Dla OR-a *tez* mozna skrocic sprawdzanie, jak pierwsze jest true - to cale wyrazenie bedzie true.

Jest to pewna forma optymalizacji - pewna bo zmienia dzialanie kodu, w manualu php nazywaja to "short-circuit"

Cytat
// foo() will never get called as those operators are short-circuit

$a = (false && foo());
$b = (true || foo());
$c = (false and foo());
$d = (true or foo());

http://us2.php.net/manual/en/language.operators.logical.php


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
thomas2411
post 9.10.2009, 08:27:10
Post #4





Grupa: Zarejestrowani
Postów: 108
Pomógł: 7
Dołączył: 15.05.2005
Skąd: Rzeszów

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


Dzięki za odpowiedzi, ale chyba się źle wyraziłem o co mi chodzi.

Chciałbym aby MySQL sprawdził sobie warunek w ten sposób, że:

... WHERE imie = 'tomek' costamniewiemco imie = 'marek'

I teraz. Jeżeli znajdzie takie wpisy gdzie imie = 'tomek' to pobiera te rekordy, ale nie sprawdza już 'marek' i nie pobiera 'marek'.

Natomiast jeżeli NIE znajdzie 'tomek' to szuka 'marek' Jak znajdzie marek to go pobiera, jak nie to nie.

-------------------Edycja-----------------------
W sumie to nie jest kwestia logicznych warunków, tylko trzeba zastosować IF i po kłopocie smile.gif

Ten post edytował thomas2411 9.10.2009, 08:46:36
Go to the top of the page
+Quote Post
dr_bonzo
post 9.10.2009, 10:05:13
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


To mowisz o czyms zupelnie innym.

Musisz zliczyc ile jest markow a ile tomkow (podzapytania), i na tej podstawie IFem wybrac ktore rekordy chcesz pobierac


--------------------
Nie lubię jednorożców.
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: 26.05.2024 - 01:21