Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] OR z logiki
Forum PHP.pl > Forum > Bazy danych > MySQL
thomas2411
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
Largo
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
dr_bonzo
@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
thomas2411
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
dr_bonzo
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
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.