The answers of the wise monks, apart from Jenda's answer which introduced COALESCE() to me, all involved creating the query on the fly, over and over again. This is something that I have been doing since basically 1995, so that didn't bring much news to me.
In my opinion, Jenda's answer was the only one that addressed the fixedness of the statement handle for the update. And therefore was considered an avenue for me to go in. And also in this thread, the only new answer for shemp as far as I can see.
MySQL 4.1 seems to support prepared statements on the server side. Too bad DBD::mysql doesn't support that yet. Any takers? ;-)