[MySQL] Trotz vergleichenden Argumentes teilweise falsche Ausgabe!

preko

Erfahrenes Mitglied
Hi,

ich habe folgende Abfrage an eine MySQL (MySQL 4.1.15) Tabelle:
PHP:
SELECT 
	*
FROM 
	`kunden` 
WHERE 	
	`wiedervorlage` = '0000-00-00'
AND 
	`status` = '1'
AND 		
            	`ort` = 'A'
OR			
            	`ort` = 'B'
ORDER BY
            	`geschaeft` ASC;
Trotzdem werden auch Kunden-Datensätze angezeigt, in denen die Zeile "wiedervorlage" [date - Null: Nein - Standard: 0000-00-00] ein Datum enthält, wie z. B. 2006-01-13, was ja eigentlich nicht passieren dürfte.

Das Kuriose dabei ist, dass nicht alle Datensätze falsch dargestellt werden. Ich kann hier keine sinnvolle Erklärung finden.

Hat jemand von Euch eine Idee? :confused:


Beste Grüße,
preko
 
da must du klammern setzen
ich bin jetzt zu faul um nachzusehen was zuerst gemacht wird aber wenn zuerst "or" kommt dann "and" ist dein verarbeitungsfehler logisch
 
Hi,
melmager hat gesagt.:
... aber wenn zuerst "or" kommt dann "and" ist dein verarbeitungsfehler logisch ...
wieso zuerst das "OR"? Mein "OR" kommt erst am Schluß! :confused:

Es kommt zweimal ein "AND" und zum Schluß, vor dem Sortierungsargument, kommt erst ein "OR". Sorry, das verstehe ich nicht.


Beste Grüße,
preko
 
wenn die abarbeitung der "and' und "or" Abfage nach Position gemacht wird betrifft es alle Datensäze wo
ort gleich b ist unabhängig vom wert von der wiedervorlage

wiedervorlage` = '0000-00-00' AND `status` = '1' AND
( `ort` = 'A' OR `ort` = 'B' )

vermute ich mal ist die Abfage die du eigedlich möchtest

was aber gemacht wird ist =
(wiedervorlage` = '0000-00-00' AND `status` = '1' AND
`ort` = 'A' ) OR `ort` = 'B'
 
Melmager hat recht, das and ist "wertvoller", wird also zuerst ausgeführt, wie auch der Doku zu entnehmen ist.

Edit: Das kann man sich ungefähr so vorstellen, wie die "Punkt-Vor-Strich-Regel" in Mathe.

Gruß hpvw
 
Hi,

soweit von der Theorie her klar - aber dann verwundert es mich, dass nicht alle Datensätze falsch dargestellt werden, sondern nur einige wenige.

Ich teste es mal nach Euren Vorgaben aus und schaue mal was sich tut. Danach setze ich mal eine Rückmeldung rein.


Besten Dank erst einmal und
viele Grüße,
preko
 
Hi,

super Info - that´s it! Funktioniert einwandfrei mit der Klammerung!

Eigentlich logisch, wenn man sich die Sache nochmal mit klarem Kopf am nächsten Tag anschaut. :)

Vielen Dank nochmals
und beste Grüße,
preko
 

Neue Beiträge

Zurück