Abfrage einer Spalte mit verschiedenen Suchwörtern

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

  • Abfrage einer Spalte mit verschiedenen Suchwörtern

    Hallo,

    wie kann ich alle Datensätze auflisten lassen, die als "kategorie" z.B. auto, bus, boot oder flugzeug haben?

    Wieso bringt das komische Ergebnisse und geht nicht:

    SELECT * FROM tabelle WHERE kategorie='auto' OR kategorie='bus' OR kategorie='boot' OR kategorie='flugzeug' AND aktiv='ja'
    Zuletzt geändert von Truncate; 30.11.2006, 00:58.

  • #2
    Geht nicht, soso. Wie wäre es mit einer präzisen Problembeschreibung?

    Welchen Typ hat die Spalte kategorie, was sind übliche Werte? Was liefert obige Abfrage und was ist daran so komisch?

    Kommentar


    • #3
      Original geschrieben von onemorenerd Welchen Typ hat die Spalte kategorie, was sind übliche Werte? Was liefert obige Abfrage und was ist daran so komisch? [/B]
      Typ ist natürlich VARCHAR... übliche Werte sind eben z.B. bus, auto, boot, ...

      aktiv="ja" wird ignoriert... es kommen auch Ergebnisse mit "nein"

      Kommentar


      • #4
        Aber es kommen keine Ergebnisse mit kategorie = 'flugzeug' und aktiv = 'nein', richtig?

        Du hättest gern ... (... OR ... OR ...) AND ... aber MySQL kann das nicht wissen und nimmt an du meinst ... OR ... OR (... AND ...).

        Nachtlektüre: http://dev.mysql.com/doc/refman/5.0/...recedence.html

        Kommentar


        • #5
          Original geschrieben von onemorenerd
          Aber es kommen keine Ergebnisse mit kategorie = 'flugzeug' und aktiv = 'nein', richtig?
          Richtig, so soll es ja auch sein. Geht aber eben nur wenn man 1 (eine) kategorie nimmt.

          Original geschrieben von onemorenerd
          Du hättest gern ... (... OR ... OR ...) AND ... aber MySQL kann das nicht wissen und nimmt an du meinst ... OR ... OR (... AND ...).

          Nachtlektüre: http://dev.mysql.com/doc/refman/5.0/...recedence.html
          Ja aber wie kann man das dann bitteschön lösen? Irgendwie in Klammern setzen? Kann doch nicht sein, dass sowas "Einfaches" in MySQL nicht in einem einzigen Query geht :-(

          Kommentar


          • #6
            Also so scheint es zu gehen:

            SELECT * FROM tabelle WHERE (kategorie='auto' OR kategorie='bus' OR kategorie='boot' OR kategorie='flugzeug') AND aktiv='ja'

            Kommentar


            • #7
              Hi,

              die Einschränkung der Kategorie kannst Du übrigens auch mit dem IN-Operator lösen:
              WHERE kategorie IN ('auto', 'bus', 'boot',...)

              LG

              Kommentar

              Lädt...
              X