LIKE - Auswahl

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

  • LIKE - Auswahl

    Hallo,
    ich habe folgende Abfrage mit einer Auswahl versehen:

    PHP-Code:
            $sql "SELECT
                        name,
                        strasse,
                        plz,
                        ort,
                        region,
                        telefon,
                        fax,
                        email,
                        url,
                        ausbildung,
                        leistungen
                    FROM
                        mitglieder
                    WHERE leistungen LIKE 'Leistung 3'
                
    $sort_sql    
                "

    Inhalt der Spalte "leistungen" sind mehrere Datensätze mit unterschiedlichen "Leistung 1, 2, 3" etc. In dieser Abfrage will ich ja nur die mit der "Leistung 3" ausgegeben haben. Das geht nicht. Selbst wenn ich nur "Leistung" schreibe, bringt er mir keine Ergebnisse.

    Ich hatte dann mal die Spalte "leistungen" gegen die Spalte "ort" getauscht und nach "ort 1" gefragt. Damit geht es! Die Eigenschaften der Spalten sind alle gleich.

    Warum geht das nicht mit "Leistung 3"?

    Gruß
    Christian

  • #2
    Re: LIKE - Auswahl

    Original geschrieben von cbarbt
    Inhalt der Spalte "leistungen" sind mehrere Datensätze mit unterschiedlichen "Leistung 1, 2, 3" etc.
    Was heißt das genau?
    Steht wirklich "Leistung 1, 2, 3" im Feld, wenn die Leistungen 1, 2 und 3 gewählt sind?
    Falls ja, arbeite an deinem Datendesign, denn das ist Nonsense.
    Stichwort: Normalisierung, oder ggf. Spaltentyp ENUM.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Und so wie du es da oben verwendest ist LIKE auch für die Katz, das kannst du genauso gut mit = erreichen.

      Kommentar


      • #4
        Ich habe diesen Script aus einem Tutrial nach gebaut, da ich mich gerade in PHP einarbeite.

        Die Inhalte nach denen ich abfrage, existieren in der DB.

        Über "like" bin ich nun mal mehr oder weniger gestolpert. Und da es teilweise ging, habe ich es eben benutzt.

        Was gibt es denn noch für Möglichkeiten, um mir nur bestimmte Inhalte auslesen zu lassen?

        Gruß
        Christian

        Kommentar


        • #5
          Einfach z.B. .... WHERE Leistung = "Leistung 3"
          So bestimmst du genau, welche Zeile der Tabelle ausgelesen werden soll!
          Wer glaubt etwas zu sein. hat aufgehört etwa zu werden!

          Das beliebteste Haustier der Deutschen ist und bleibt das halbe Hähnchen

          Kommentar


          • #6
            Das hatte ich auch schon probiert, kommt aber zum Gleichen Resultat. Ich habe mal einen Screenshot von meiner DB angehängt.
            Angehängte Dateien

            Kommentar


            • #7
              Original geschrieben von cbarbt
              Ich habe mal einen Screenshot von meiner DB angehängt.
              Du hast bereits den Hinweis bekommen, dass so ein Datendesign Murks ist.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Was ist denn so falsch an der Struktur? Ich habe je Eingeschaft eine Spalte. Und in einer Spalte verschiedene Variationen von Eigenschaften, nach denen ich abfragen möchte.

                Kommentar


                • #9
                  Dem Screenshot nach hast du in der Spalte leistung Werte wie "Leistung 1, Leistung 2, Leistung 3", das heißt, du hast nicht richtig normalisiert.

                  http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

                  Außerdem solltest du dir mal die Dokumentation zu LIKE anschauen.
                  Zuletzt geändert von onemorenerd; 02.04.2006, 13:29.

                  Kommentar

                  Lädt...
                  X