MySQL WHERE mit AND und OR

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL WHERE mit AND und OR

    Hallo,

    Wenn ich die unten stehende Abfrage ausführe bekomme ich im Ergebnis auch Datensätze, die die Bedingung "AND Stall = '$stall'" nicht erfüllen. Mindestens eine er OR Bedingungen trifft aber zu. Wie kann ich erreichen, dass eine der OR Bedingungen und die AND Bedingung zutreffen müssen?

    PHP-Code:
    mysql_query("SELECT * FROM vorgaenge WHERE name
     like '%"
    .strtolower($suchbegriff)."%' OR erzeuger like
     '%"
    .strtolower($suchbegriff)."%' OR hdql like
     '%"
    .strtolower($suchbegriff)."%' AND stall = '$stall'
     ORDER BY 'datum'"
    ); 


    Gruß, spikis
    Zuletzt geändert von wahsaga; 29.08.2004, 18:44.

  • #2
    Re: MySQL WHERE mit AND und OR

    Original geschrieben von spikis
    Wenn ich die unten stehende Abfrage ausführe bekomme ich im Ergebnis auch Datensätze, die die Bedingung "AND Stall = '$stall'" nicht erfüllen.
    natürlich.
    AND bindet in der aussagenlogik stärker als OR,
    deine bedingung ist also schon erfüllt, wenn
    name = ... oder erzeuger = ... zutifft -
    oder aber
    hdql = ... UND stall = '$stall'.

    Wie kann ich erreichen, dass eine der OR Bedingungen und die AND Bedingung zutreffen müssen?
    in dem du durch klammerung die OR-bedingungen fester zusammenbindest.

    (name=... OR erzeuger=... OR hdql=...) AND stall=...
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      habe das jetzt so:

      SELECT * FROM vorgaenge WHERE (name like '$suchbegriff' OR erzeuger like '$suchbegriff' OR hdql like '$suchbegriff) AND stall = '$stall' ORDER BY 'datum'

      bekomme aber kein Suchergebniss.
      Die Daten die ich in die Suchmaske eingegeben habe sind in der Tabelle aber vorhanden.

      Kommentar


      • #4
        Original geschrieben von spikis
        name like '$suchbegriff'
        jetzt suchst du nach datensätzen, wo name ausschließlich $suchbegriff beinhaltet - vorher hattest du da jeweils noch % um den suchbegriff, wo sind denn die geblieben ...?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Die Klammerung scheint mir sehr fragwürdig an gewissen Stellen

          Kommentar


          • #6
            bekomme aber kein Suchergebniss.
            vorhin hattest du noch % mit dabei ...

            laß dir die query ausgeben, teste sie stück für stück im php_my_admin/auf der mysql-console
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar

            Lädt...
            X