Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> select count, zle liczy
deniol13
post
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 2
Dołączył: 30.11.2009

Ostrzeżenie: (10%)
X----


  1. SELECT COUNT(STATUS) FROM `phpbb2_topics` WHERE STATUS = 0 AND forum_id = 2 OR forum_id = 6


i pokazuje że znalazło 6wyników mimo że jest tylko jeden gdzie status = 0 i forum_id = 2 lub 6
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cojack
post
Post #2





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Tu nie chodzi o to że AND ma wyższy priorytet. Jest błąd logiczny w zapytaniu na który zwróciłeś uwagę, chodź nie do końca o to chodziło. Zapytanie jest traktowane liniowo, od lewej do prawej. Jak widzi WHERE to ma warunek, ma być spełniony, jeżeli widzi AND, czyli koniunkcję to oba te warunki muszą być spełnione. Warunek WHERE jest nie prawdziwy gdy chodź jedno z nich jest nie prawdziwe. Następnie trafia na klauzulę OR, alternatywa dla warunku wcześniej, czyli interpretator języka SQL widzi to zapytanie w postaci warunku OR gdzie pierwszy element jest dwuczłonową koniunkcją.

Proste nie?

Ten post edytował cojack 26.04.2010, 08:45:02
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 00:08