Podrias hacer esto:
Código SQL:
Ver originalUPDATE tabla
SET
dato=t1.dato,
dato1=t1.dato1,
dato2=t1.dato2
FROM
(
SELECT
CASE
WHEN $variable1='' THEN dato ELSE $variable1 END AS dato,
CASE
WHEN $variable2='' THEN dato1 ELSE $variable1 END AS dato1,
CASE
WHEN $variable3='' THEN dato2 ELSE $variable2 END AS dato2
FROM tabla WHERE nick=$nick
) AS t1 WHERE tabla.nick=$nick
Saludos!