jenslm: mehrere Werte einzeln abfragen

folgendes problemchen:
abfrage: SELECT * FROM tabelle WHERE wert = '5'

in der tabelle steht jetzt bei den Datensätzen

Id = INT(11) = 1
text = VARCHAR(255) = text1
wert = LONGTEXT = 5

Id = 2
text = VARCHAR(255) = text2
wert = LONGTEXT = 4, 5

das Feld wert ist deshalb ein LONGTEXT, weil da unter umstaendne ziemlich viele zahlen rein muessten.

aber die abfrage zeigt nur den ersten Datensatz an. was mache ich falsch?
nah mal an das es an longtext lieg?
lg, jens

  1. Hi,

    abfrage: SELECT * FROM tabelle WHERE wert = '5'

    wert = LONGTEXT = 4, 5

    das Feld wert ist deshalb ein LONGTEXT, weil da unter umstaendne ziemlich viele zahlen rein muessten.

    Die müssten da nicht rein, wenn du vernünftig normalisiert hättest. Beschäftige dich mit diesem Stichwort.

    aber die abfrage zeigt nur den ersten Datensatz an. was mache ich falsch?
    nah mal an das es an longtext lieg?

    Nein, das liegt daran, dass der Inhalt des Feldes nicht '5' ist.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. die muessen da definitiv rein, weil der entsprechende Datensatz mit dem wert 4,5 auf den seiten 4 und 5 angezeigt werden soll.
      kann man dass so definitiv nicht realisieren?
      lg

      1. Hi,

        die muessen da definitiv rein, weil der entsprechende Datensatz mit dem wert 4,5 auf den seiten 4 und 5 angezeigt werden soll.

        Nein, müssen sie nicht.

        kann man dass so definitiv nicht realisieren?

        Kann man - sollte man aber nicht.

        Noch mal: Beschäftige dich mit dem Stichwort Normalisierung.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
      2. Hi!

        die muessen da definitiv rein, weil der entsprechende Datensatz mit dem wert 4,5 auf den seiten 4 und 5 angezeigt werden soll.
        kann man dass so definitiv nicht realisieren?

        Die Folge von dieser Design-Entscheidung ist, dass du nun Stringoperationen für den Zugriff auf Einzelwerte anwenden musst. Das ist sowohl aufwendig als SQL-Statement zu formulieren als auch aufwendig beim Abarbeiten, weil die Formel für jeden Datensatz berechnet werden muss und kein Index verwendet werden kann. (Auf Funktionen basierende Indexe gibt es zwar, aber nur in wenigen DBMS.)

        Lo!