SELECT Abfrage für Feld mit Kommagetrennten Nummern

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

  • SELECT Abfrage für Feld mit Kommagetrennten Nummern

    Hallo alle zusammen,

    folgendes Szenario.

    Ich habe eine Tabelle mit einem Feld "Seiten IDs".
    Z.B. 1,2,5,8,9

    Nun möchte ich meine Agbfrage nach einer bestimmten Zahl filtern. Die "2".

    Ich habe dazu folgendes gemacht.
    [FONT=Lucida Console]
    $result = mysql_db_query($database, "select * from table WHERE level = '1' AND siteid IN ('2') ORDER BY datetime asc") or die ("Database Error");[/FONT]

    Leider gibt mir das kein Ergebnis.

    Hat jemand einen kleinen Tipp für mich?

  • #2
    Ich habe eine Tabelle mit einem Feld "Seiten IDs".
    Z.B. 1,2,5,8,9
    Ganz schlechte Idee.

    Das Thema hatten wir schon sehr oft. Und immer konnten wir den Threadstarter davon überzeugen, dass die Normalisierung der richtige Weg gewesen wäre.

    Ich habe dazu folgendes gemacht.

    $result = mysql_db_query($database, "select * from table WHERE level = '1' AND siteid IN ('2') ORDER BY datetime asc") or die ("Database Error");
    Leider gibt mir das kein Ergebnis.
    Ja, du würdest auch nicht behaupten, dass "1,2,5,8,9" in 2 drin ist, oder? Andersrum vielleicht, aber so nicht!

    Kommentar


    • #3
      Hallo,

      das Problem daran ist, dass ein LIKE-Vergleich mit '%2%' auch auf '...,524,...' passen würde und einer mit '%,2,%' passt nicht mehr auf '2,3,4,...', weil das Komma davor fehlt. Das ließe sich zwar beheben, aber wie TobiaZ schon sagte, hättest du das Problem mit einer normalisierten DB ohnehin nicht.

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Hallo Amica,

        für deine Antwort.

        Das macht natürlich sinn! Dann muss ich jetzt erstmal umdenken.

        Viele Grüße
        til2020

        Kommentar


        • #5
          Normalisierung ist natürlich immer richtig.
          Code:
          where find_in_set(2,siteid)>0
          könnte als vorübergehende Lösung betrachtet werden
          Slava
          bituniverse.com

          Kommentar

          Lädt...
          X