Thorsten Steffen: Perl + Sql

Beitrag lesen

ich lese mit perl eine SQL-Datenbank aus, allerdings möchte ich nur Felder auswerten, die nicht leer sind; Felder, die leer sind, haben ja den laut SQL Wert NULL, oder ?
Muß die Abfrage auf "leere" Felder anders erfolgen oder wo liegt der Fehler ?

Wenn Du wirklich SQL zur Verfügung hast (und nicht einen abgemagerten Schmuddel-Dialekt), dann blende die NULL-Spalten doch gleich beim Lesen aus:

SELECT ... FROM ... WHERE ... AND name IS NOT NULL;

usw.
Die Datenbank weiß, wie sie eine Abfrage auf "NULL" machen soll.

Und falls Du ggf. sogar verhindern willst, daß es NULL-Werte überhaupt geben darf (damit später Deine Anwendungen diese ganze Abfragerei gar nicht machen müssen), dann definiere entsprechende Constraints für die Spalten der Tabelle (d. h. "NOT NULL" hinter den Datentyp der Spalte).

Datenintegrität läßt sich in der Datenbank viel eleganter lösen als durch Nachverarbeitung mit Perl etc.

Hi,
ich rede übrigens von mysql, außerdem geht es mir dadrum, Felder von Datensätzen, die leer sind, nicht anzuzeigen, und nicht in diesem Fall den ganzen Satz zu verwerfen, was durch dein SQL-Statement bewirkt würde. Und da es manche Felder in meiner Datenbank optional sind, kann ich die leider auch nicht als not null definieren.

so long
Thorsten