/MySQL: Standardwert für NULL
AllesMeins
- datenbank
Hi,
ist es irgendwie möglich bei einer MySQL-Abfrage einen Standard-Rückgabewert für Felder mit dem Wert "NULL" festzulegen?
Ich möchte nicht einfach in der Tabelle einen Default-Wert festelgen, da der ausgegebene Standard-Wert sich je nach Anwendung ändern kann. Ich möchte aber auch ungern ein ständiges IF(wert = NULL) THAN '---' machen müssen. Gibt es da in MySQL irgendwas, das einfach beim SELECT alle NULL durch z.B.: --- ersetzt?
Marc
n'abend,
Hi,
ist es irgendwie möglich bei einer MySQL-Abfrage einen Standard-Rückgabewert für Felder mit dem Wert "NULL" festzulegen?
nicht, dass ich wüsste.
Ich möchte nicht einfach in der Tabelle einen Default-Wert festelgen, da der ausgegebene Standard-Wert sich je nach Anwendung ändern kann. Ich möchte aber auch ungern ein ständiges IF(wert = NULL) THAN '---' machen müssen. Gibt es da in MySQL irgendwas, das einfach beim SELECT alle NULL durch z.B.: --- ersetzt?
Wenn ich dich mal kurz mit der Theorie von Trennung der Daten, Programmlogik und Userinterface belästigen darf, erzähle ich dir, dass du soetwas lieber mit deiner Template-Engine (nach Wahl) löst. Smarty kann solche Default-Values bspw. von Haus aus.
Solltest du nicht über etwas derart sophisticated verfügen, würde es wohl eine Standardfunktion (siehe folgendes Beispiel) auch tun:
<?php
function defaultize( $value )
{
return ( $value == NULL )? '---' : $value;
}
?>
Deine auszugebenden Variablen wirfst du dann einfach kurz in diese Funktion und dein Problem ist gegessen. Dieses ( expression )? var:var; Konstrukt nennt man übrigens Trinärer Operator
weiterhin schönen abend...
Wenn ich dich mal kurz mit der Theorie von Trennung der Daten, Programmlogik und Userinterface belästigen darf, [...]
Interessanter Aspekt, das Ersetzen von NULL-Werten bspw. durch "Strings der Länge 0" ist tatsächlich eine Datenformatierung und hat somit nicht datenserverseitig zu erfolgen.
echo $begrüßung;
Gibt es da in MySQL irgendwas, das einfach beim SELECT alle NULL durch z.B.: --- ersetzt?
Nicht dass mir etwas bekannt wäre. Wenn, dann müsste es ein Parameter im SELECT-Statement sein (Quasi ein Geschwister von DISTINCT) oder ein mit SET zu konfigurierender Wert.
Ich möchte aber auch ungern ein ständiges IF(wert = NULL) THAN '---' machen müssen.
Einfacher ginge es sowieso mit IFNULL(wert, ersatz) oder auch COALESCE(wert, ersatz).
echo "$verabschiedung $name";