¿Cómo podría llevar esta función de php a mysql con una función o procedimiento almacenado?

estoy intentando llevar una funcionalidad que hago en php a mysql mediante una función o procedimiento almacenado, aunque me gustaría más si fuera una función.

Me gustaría que la función de mysql me devolviera la fecha mínima que tuviera para id_av.

Este es el trozo de código que me gustaría llevar a php:



<?php
// my controler
function toFunctionMySQL()
{
    $date = array();
    $listIdAv =  $this->mi_model->getListIdAv();
    foreach ($listIdAv as $av) {
        
        $dateFirstChangeStatus = $this->mi_model->getDateFirstChangeStatusForIdAv($av);
        array_push($date, $dateFirstChangeStatus);
    }
}

// my model
function getDateFirstChangeStatusForIdAv( $idAv)
{
    return $this->db->query("SELECT DATE_FORMAT( MIN(date_change) , '%d-%m-%Y %H:%i:%s' ) AS date_change FROM `av` WHERE change LIKE 'Change status %' AND id_av= $idAv")->row()->date_change;
}

function getListIdAv()
{
    return $this->db->query("SELECT id_av from av")->result_array();
}

?>

Hasta ahora lo que he hecho ha sido la siguiente función, pero me está retornando una misma fecha, según pensaba, que si hago una llamada a una función, y a esta le paso como parametro un campo de una tabla, haciendo select mifuncion(id_av) from av; me muestra la misma fecha para todos los registros.

CREATE FUNCTION `mifunction`(id_av int) RETURNS varchar(25) CHARSET latin1
BEGIN

declare dateText VARCHAR(25);

SELECT DATE_FORMAT( MIN(date_change) , '%d-%m-%Y %H:%i:%s' ) 
into dateText 
FROM `av` 
WHERE date_changeLIKE 'change status%' AND id_av = id_av ;
if dateText is null then 
    set dateText = '';
end if;
RETURN dateText;
END

¿ Alguna forma de llevar ese trozo de código de php a mysql con una función ?