Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Priorytety w zapytaniach do SQL`a (OR i AND)
Forum PHP.pl > Forum > Bazy danych
Project
Witam!
Troszke ostatnio sie zgubilem i szukam mozliwych bledow stad ten topic!
Jakie sa priorytety w zapytaniach SQL?
tzn. Jak zapisac te kilka ponizszych przykladow w sqlu: (?)

1) (kolumna1=wartosc1 AND kolumna2=wartosc2) OR (kolumna3=wartosc3 AND kolumna3=wartosc4)

2)kolumna0=wartosc0 OR ((kolumna1=wartosc1 AND kolumna2=wartosc2) OR (kolumna3=wartosc3 AND kolumna3=wartosc4))

Bardziej juz nie bede mieszal bo jak bede znal odpowiedzi na te pytania to poradze sobie z reszta smile.gif
Szkopul tkwi jak zapisac te zaleznosci w SQL`u (bez nawiasow?)
Z gory dziekuje za odpowiedzi!!!!
POZDRAWIAM
FiDO
Wg mnie tak jak masz powinno byc dobrze...
A na przyszlosc to jak nie jestes pewien jaki jest priorytet to wymuś go sobie nawiasami, nie ma w tym nic zlego.
Project
No i nadal uzywam tych nawiasow a chcialbym sie dowiedziec jak jest naprawde interpretowane polecenie z OR i AND...
KTOS MOZE MI POWIEDZIEC JAKIE SA PRIORYTETY?questionmark.gif
A moze to jedzie od lewej do prawej jak leci...
smile.gif
Jabol
ja zawsze myślałem, że są równoległe... ale może się myle.
dragossani
Nie są równorzędne. W algebrze bool'a operator AND ma wyższy priorytet niż operator OR. W MySQL jest podobnie.

Przy okazji chciałbym ostrzec tych, którzy lubią zapytania z użyciem operatora OR. Silnik analizujący zapytania w MySQL nie posiada procedur optymalizacyjnych dla takich konstrukcji, dlatego użycie ich powoduje drastyczny spadek wydajności. Jest tak na pewno w wersjach poniżej 4.0, a nie słyszałem, żeby w 4.0 i wyższych został ten problem rozwiązany.
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.