O exemplo de função que você mostra é uma Função Armazenada , não uma UDF. As funções armazenadas no MySQL não suportam um número variável de argumentos, como @Enzino respondeu.
As UDFs do MySQL são escritas em C ou C++, compiladas em arquivos de objetos dinâmicos e, em seguida, vinculadas ao servidor MySQL com um sintaxe diferente de
CREATE FUNCTION
. Consulte http://dev.mysql.com/doc/ refman/5.5/en/adding-udf.html para obter detalhes sobre como escrever UDFs. Mas não sei se você quer escrever código C/C++ para fazer isso.
UDFs MySQL suportam um número variável de argumentos. Na verdade, todas as UDFs aceitam implicitamente qualquer número de argumentos, e cabe a você, como programador, determinar se o número e os tipos de dados dos argumentos fornecidos são válidos para sua função.
O processamento de argumentos de função em UDFs está documentado em http://dev .mysql.com/doc/refman/5.5/en/udf-arguments.html