bernhard.s: Suche nach Ziffern in Tabellenspalten

hallo zusammen,

gibt es eine Möglichkeit in eine Spalte "Ziffern" deren Inhalt sieht so aus:

ID| Ziffern
1 | 00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
2 | 00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
3 | 00|13|18|00|00|14|00|00|19|00|32|40|00|17|10|00
4 | 00|14|00|00|00|00|00|00|00|00|00|00|00|00|00|00
5 | 11|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
6 | 11|00|00|00|00|00|00|00|00|00|00|00|00|00|22|00
7 | 11|00|10|00|00|00|30|00|00|00|33|00|00|00|00|00
8 | 00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00

Die Tabelle heißt "PROFILE". Diese Spalte frage ich über folgende Query:

$QID = mssql_query("SELECT Ziffern FROM PROFILE WHERE Jahr=".$jahr." AND Woche=".$woche." ORDER BY Woche DESC");

Meine Frage an dieser Stelle, ist es an der SQL "Ebne" möglich die Spalte "Ziffern" so abzufragen, dass ich nur die IDs ausgegeben werden, deren Inhalt der Spalte "Ziffern" größer bzw. ungleich 00 ist, in meinen Bsp. sollen die IDs von 3 bis 7 sein.

grüße bernhard

  1. Sup!

    Du solltest nach Datenbankfeldern suchen, in denen es Buchstaben gibt, die nicht 0 oder | sind, falls MSSQL das kann.

    Gruesse,

    Bio

    --
    Elite ist mein zweiter Vorname
    1. hi,

      erst Mal danke für Eure Vorschläge, aber:

      WHERE ziffern != "00|00|00..." vielleicht?

      ist nicht so gut geeignet, denn im Augenblick befinden sich 16 Null "Paare", es könnten auch mehr oder weniger sein. außer dem musste ich für jedes "Paar" eine Abfrage schreiben, in meinem Fall per PHP.

      noch eine Ergaenzung zum genialen Tipp von 'Bio':
      Du koenntest Dich mit eingebauten Funktionen auf den Inhalt des Feldes 'Ziffern' stuerzen, also z.B. mit 'isnumeric' oder 'cast' oder 'convert' oder 'str' oder 'substring'...

      In diesem Vorschlag hat schon PHP die Daten und das genau möchte ich vermeiden, diese Arbeit soll mssql machen.

      Du solltest nach Datenbankfeldern suchen, in denen es Buchstaben gibt, die nicht 0 oder | sind, falls MSSQL das kann.

      Genau nach so eine Möglichkeit suche ich, kennt sie jemand.
      Danke im Voraus.

      grüße bernhard

  2. Hi,

    Meine Frage an dieser Stelle, ist es an der SQL "Ebne" möglich die Spalte "Ziffern" so abzufragen, dass ich nur die IDs ausgegeben werden, deren Inhalt der Spalte "Ziffern" größer bzw. ungleich 00 ist, in meinen Bsp. sollen die IDs von 3 bis 7 sein.

    noch eine Ergaenzung zum genialen Tipp von 'Bio':
    Du koenntest Dich mit eingebauten Funktionen auf den Inhalt des Feldes 'Ziffern' stuerzen, also z.B. mit 'isnumeric' oder 'cast' oder 'convert' oder 'str' oder 'substring'...

    Gruss,
    Lude

  3. Sup!

    $QID = mssql_query("SELECT Ziffern FROM PROFILE WHERE Jahr=".$jahr." AND Woche=".$woche." ORDER BY Woche DESC"

    Meine Frage an dieser Stelle, ist es an der SQL "Ebne" möglich die Spalte "Ziffern" so abzufragen, dass ich nur die IDs ausgegeben werden, deren Inhalt der Spalte "Ziffern" größer bzw. ungleich 00 ist, in meinen Bsp. sollen die IDs von 3 bis 7 sein.

    WHERE ziffern != "00|00|00..." vielleicht?

    Gruesse,

    Bio

    --
    Elite ist mein zweiter Vorname
  4. Hallo,

    gibt es eine Möglichkeit in eine Spalte "Ziffern" deren Inhalt sieht so aus:

    ID| Ziffern
    1 | 00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
    2 | 00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
    3 | 00|13|18|00|00|14|00|00|19|00|32|40|00|17|10|00
    4 | 00|14|00|00|00|00|00|00|00|00|00|00|00|00|00|00
    5 | 11|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00
    6 | 11|00|00|00|00|00|00|00|00|00|00|00|00|00|22|00
    7 | 11|00|10|00|00|00|30|00|00|00|33|00|00|00|00|00
    8 | 00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00

    Die Tabelle heißt "PROFILE". Diese Spalte frage ich über folgende Query:

    $QID = mssql_query("SELECT Ziffern FROM PROFILE WHERE Jahr=".$jahr." AND Woche=".$woche." ORDER BY Woche DESC");

    Meine Frage an dieser Stelle, ist es an der SQL "Ebne" möglich die Spalte "Ziffern" so abzufragen, dass ich nur die IDs ausgegeben werden, deren Inhalt der Spalte "Ziffern" größer bzw. ungleich 00 ist, in meinen Bsp. sollen die IDs von 3 bis 7 sein.

    Du suchst die Datensätze bei denen
    Ziffern != "00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00"
    ist?
    http://www.mysql.de/doc/de/Comparison_Operators.html

    "SELECT Ziffern FROM PROFILE WHERE Jahr=".$jahr." AND Woche=".$woche."
    AND Ziffern != '00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00'
    ORDER BY Woche DESC"

    Wobei ich mich frage, wo diese Strings "00|00|00|00|00|00|00|00|00|00|00|00|00|00|00|00" herkommen, was sie bedeuten und ob man die Ziffern wirklich erst so zusammensetzen muss, um sie in die Datenbank zu schreiben.

    viele Grüße

    Axel