Marc: mysql - Datensätze auf vorhandene Werte überprüfen

Hallo,

ist es möglich in einer Tabelle einen Datensatz daraufhin zu prüfen, ob alle Spalten, einige Spalten oder keine Spalten einen Wert zugewiesen bekommen haben? Also so in etwa:

Tabelle:

name | alter | strasse

Jetzt möchte ich also überprüfen, ob

  • für jede Spalte ein Wert gesetzt ist
  • für eine oder mehrere, aber nicht alle Spalten ein Wert gesetzt ist

Gibt es da vielleicht eine PHP oder mysql-Funktion?

  1. echo $begrüßung;

    ist es möglich in einer Tabelle einen Datensatz daraufhin zu prüfen, ob alle Spalten, einige Spalten oder keine Spalten einen Wert zugewiesen bekommen haben? Also so in etwa:

    Definiere "Wert zugewiesen". Meinst du damit etwas was nicht NULL ist oder etwas das kein Leerstring ist oder gar beides?

    MySQL kenne eine Menge Funktionen. Einige der String-Funktionen würde ich hier in Betracht ziehen. Mit LENGTH() kann man testen ob ein String die Länge 0 hat, vorher könnte man ihn noch TRIM()en damit keine überflüssigen Leerzeichen das Ergebnis stören. Und NULL-Werte lassen sich mit IS NULL abfragen.

    echo "$verabschiedung $name";

  2. yo,

    • für jede Spalte ein Wert gesetzt ist

    SELECT name, alter, strasse
    FROM tabelle
    WHERE name <> NULL AND alter <> NULL AND strasse <> NULL

    • für eine oder mehrere, aber nicht alle Spalten ein Wert gesetzt ist

    SELECT name, alter, strasse
    FROM tabelle
    WHERE name = NULL OR alter = NULL OR strasse = NULL

    willst du beide datensätze in einer abfrage vereinen, kannst du sie über UNION verbinden.

    Ilja

    1. yo,

      dedlix hat mich indirekt wieder auf meinen alten fehler aufmerksam gemacht.

      SELECT name, alter, strasse
      FROM tabelle
      WHERE name IS NOT NULL AND alter IS NOT NULL AND strasse IS NOT NULL

      SELECT name, alter, strasse
      FROM tabelle
      WHERE name IS NULL OR alter IS NULL OR strasse IS NULL

      Ilja