Einzelnen Beitrag anzeigen

Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#1

Frage zu IfNull bei MySQL

  Alt 20. Okt 2014, 14:48
Datenbank: MySQL • Version: 5.1 • Zugriff über: ODBC/MyDAC
Hi.

ich habe hier eine Storedprocedure die im Grunde folgendes machen soll: Anhand der übergebenen Daten (bzw. anhand eines Parameters) soll in einer Tabelle der entsprechende Datensatz gesucht werden. Ist einer da, dann wird der per Update und den restlichen Parametern aktualisiert, ist keiner da, soll einer angelegt werden.

Was ich nicht verstehe: Der Update läuft so ab:

Update <tabelle> SET Wert1=IFNULL(Wert1,AWert1),...

wobei Wert1 das Tabellenfeld ist, AWert1 der übergebene Parameter.

Ziel ist es, wenn NULL übergeben werden (oder leere Strings) diese den aktuellen Inhalt nicht überschreiben sollen.

Anhand der Doku von IfNull sowie meinen kurzen Tests würde das da oben aber auch bedeuten, dass wenn in Wert1 ein gültiger Wert steht niemals eine Aktualisierung (durch AWert1) durchgeführt wird, auch wenn in AWert1 ein gültiger von Wert1 unterschiedlicher Wert steht.

Die Praxis zeigt aber: Es klappt. Und ich versteh nicht warum. Kann mir jemand von Euch den Hintergrund erklären? Eingesetzte MySQL: 5.1.71

Grüße
  Mit Zitat antworten Zitat