Conforme documentação sobre funções definidas pelo usuário no MySQL
você só pode retornar valores do tipo
{STRING|INTEGER|REAL|DECIMAL}
CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}
SONAME shared_library_name
Se você quiser ler um
select
conjunto de resultados você tem que definir um procedure
mas não function
. DELIMITER //
DROP PROCEDURE IF EXISTS myProcedure //
CREATE PROCEDURE
myProcedure( id INT )
BEGIN
SELECT * FROM board
-- add where condition if required
WHERE Col_name = id
;
END
//
DELIMITER ;
E você pode chamar um procedimento como
call myProcedure( 6 )
Isso retorna objetos implícitos com base nas instruções usadas no procedimento.