Veröffentlicht 19. Dezember 200717 j Hallo... Ich Programmiere gerade einen Kalender auf einer Weboberfläche mit Hilfe von PHP und benutze eine MYSQL-Datenbank. Momentan hänge ich an einer Abfrage, bei der ich mehrere Bedienungen habe. Diese Bedingungen sind sowohl mit AND als auch mit OR verknüpft. Das Problem ist, dass die Verknüpfungen mit AND in eine Klamme müssten, da entweder alle mit AND verknüpften Bedingungen oder die weiter mit OR verknüpfte Bedingung erfüllt sein soll. Mathematische würde man das irgendwie so ausdrücken: (B1 AND B2) OR B3 Hat jemand eine Ahnung, wie man das in einer MYSQL-Abfrage realisieren kann. Dank schonmal im Voraus für eure Antworten. Gruß
19. Dezember 200717 j Mit einer Abfrage wie select * from [Tabelle] where ([B1] and [B2]) or [B3]; hast Du es schon versucht? Die Klammerung sollte übrigens eigentlich nicht notwendig sein, da and höherwertiger ist als or (zumindest unter Oracle). Es spricht allerdings nichts dagegen, eigentlich nicht erforderliche Klammern zu setzen, um die Lesbarkeit zu erhöhen.
19. Dezember 200717 j Autor Habe es mit den Klammern ausprobiert und es hat fast geklappt. Das Problem ist nur, dass er mir die Einträge jetzt zweimal anzeigt. Da muss ich nochmal gucken, was er da macht. Ich bin davon ausgegangen, dass man in MYSQL-Abfragen keine Klammern setzen kann, da ich das noch nie gesehen habe. Danke für die schnelle Antwort! Gruß
19. Dezember 200717 j doppelte resultierende datensätze kannst du mit DISTINCT eliminieren. allerdings würde ich dennoch vorher einmal prüfen, warum deine WHERE-klausel diese liefert. s'Amstel
19. Dezember 200717 j Autor Das Problem lag daran, dass ich die OR-Bedingung an der falschen Stelle eingefügt habe. Dadurch hat er den Eintrag doppelt gefunden. Habe die Abfrage jetzt so wie ich sie brauche. Danke für eure Hilfe! Gruß
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.