se me ocurre que podrías hacer una concatenación de cadenas, donde empieza algo como
y ya después por concatenación y con if por cada campo le vas agregando a esa cadena cual si y cual campo no se actualizará, eso sería poniendo como condición en el if un isset y la variable, y al ultimo terminas con el WHERE y listo.
La verdad se me acaba de ocurrir y es algo tarde jaja por si alguien dice que es ineficiente o si alguien puede pulirlo mas estaría muy bien.