El ejemplo de función que muestra es una función almacenada , no una UDF. Las funciones almacenadas en MySQL no admiten una cantidad variable de argumentos, como respondió @Enzino.
Los UDF de MySQL se escriben en C o C++, se compilan en archivos de objetos dinámicos y luego se vinculan con el servidor MySQL con un diferente sintaxis de CREATE FUNCTION
.
Ver http://dev.mysql.com/doc/ refman/5.5/en/agregar-udf.html para obtener detalles sobre la escritura de UDF. Pero no sé si quieres empezar a escribir código C/C++ para hacer esto.
Las UDF de MySQL admiten un número variable de argumentos. De hecho, todas las UDF aceptan implícitamente cualquier cantidad de argumentos, y depende de usted como programador determinar si la cantidad y los tipos de datos de los argumentos proporcionados son válidos para su función.
El procesamiento de argumentos de función en UDF está documentado en http://dev .mysql.com/doc/refman/5.5/en/udf-argumentos.html