Hallo Linuchs,
du stellst zwei Fragen. (1) COUNT, (2) Trefferzahl.
Zu 1: COUNT(*)
zählt alle Sätze in der Table, oder bei Einsatz von GROUP BY
in der Gruppe. COUNT(feldname)
tut das auch, nur ohne die NULL Werte. COUNT(DISTINCT feldname)
zählt alle unterschiedlichen Werte dieses Feldes in der Table (außer NULL), oder bei Einsatz von GROUP BY
in der Gruppe. Zumindest ist das in meinem lokalen Spielzeug MySQL 5.6 so (bei dem ich seit Ewigkeiten zu faul zum updaten bin)
(Kursiver Teil nach Dedlfix' Hinweis ergänzt)
Zu 2: Die Trefferzahl erhöht sich, weil AND
stärker bindet als OR
. D.h. wenn Du auskommentierst, steht da WHERE X AND Y AND Z
. Wenn Du die Zeile hinzunimmst, steht da WHERE (X AND Y AND Z AND A) OR B
. Die Klammer steht da nicht, aber MySQL denkt sie sich. Vermutlich möchtest Du WHERE X AND Y AND Z AND (A OR B)
.
Rolf
sumpsi - posui - obstruxi