Andreas: SQL: Suche Funktion mit dem Sinn "enthält einen DS"

Hallo!

Ich suche eine in MySQL verwendbare SQL-Funktion, die dem Sinn nach "enthält einen Datensatz..." entspreicht. Und zwar äquivalent zu

... HAVING MIN(Datum) IS NULL

Statt jetzt abzufragen ob das Minimum IS NULL, würde ich gerne abfragen: "enthält einen Datensatz der IS NULL"

Kennt da jemand was? Denn die obige Version trifft den Sinn nicht ganz, ich verwende das z.B. in einer Datetime Spalte, um zu sehen ob einer der per Group-By zusammengefassten Datensätze in der Spalte Datum noch keinen Wert enthält, also NULL.

Jemand ne Idee?

Grüße
Andreas

  1. hm .. zwei moeglichkeiten, die mir einfallen wuerden:
    du setzt einfach am anfang einen wert, zb aaa , und vergleichst, ob der nicht aaa ist, oder - einfacher - du machst einen if !(mysql_query("select date from database where CHECK",$connection) .. das sollte funktionieren, habs noch nich ausprobiert, is aba so ne erste idee :)
    bai bai
    ich

  2. »»» Jemand ne Idee?

    Hi,

    ja, irgendwie! Obwohl, ich weiß nicht genau, was du jetzt eigentlich willst.

    A) wissen ob mindestens 1 Datensatz dabei ist
    B) wissen wieviele Datensätze dabei sind
    C) die Datensätze selektieren, die NULL sind

    Und was willst du gruppieren?  Wenn du dich da etwas genauer kommunizieren würdest, wäre das praktisch.

    Gruß, Frank

  3. Hi Andreas,

    Ich suche eine in MySQL verwendbare SQL-Funktion,

    warum muß es eine Funktion sein, und keine WHERE-Klausel?

    Statt jetzt abzufragen ob das Minimum IS NULL, würde ich gerne
    abfragen: "enthält einen Datensatz der IS NULL"

    Ein "Datensatz" kann nicht "NULL sein". Ein Datensatz ist eine Zeile.
    NULL ist ein Wert einer Spalte einer Zeile. Was meinst Du nun?

    ich verwende das z.B. in einer Datetime Spalte,

    Aha. Also doch ein Feld und kein Datensatz.

    um zu sehen ob einer der per Group-By zusammengefassten Datensätze
    in der Spalte Datum noch keinen Wert enthält, also NULL.

    Und wo ist das Problem? "HAVING" hast Du doch bereits verstanden.

    Außerdem kannst Du natürlich die Reihenfolge umkehren und Zeilen,
    die in Datum ein NULL enthalten, schon in der WHERE-Klausel, also
    _vor_ dem GROUP BY, herausfiltern.
    (Dann geht ggf. sogar das Zusammenfassen schneller.)

    Viele Grüße
          Michael