"Estimado profesor Alvaro Camacho Diaz, agradezco mucho su dedicación y esfuerzo en nuestras clases. Me gustaría compartir una observación que creo podría enriquecer aún más nuestro aprendizaje. (by Perplexity)
Luego de probar el codigo, en forma random me arroja valor 'null'. Por eso le encontre la vuelta, para eliminar el valor 'null'.
CREATE DEFINER=`root`@`localhost` FUNCTION `f_cliente_aleatorio3`() RETURNS varchar(12) CHARSET utf8mb4
BEGIN
DECLARE vresultado VARCHAR(12);
DECLARE vmax INT;
DECLARE valeatorio INT;
-- Obtener el número total de clientes
SELECT COUNT(*) INTO vmax FROM clientes;
-- Verificar si hay clientes en la tabla
IF vmax = 0 THEN
RETURN "Reload";
END IF;
-- Generar un número aleatorio entre 0 y vmax -1
SET valeatorio = f_aleatorio(0, vmax -1);
-- Seleccionar el DNI del cliente aleatoriamente seleccionado
SELECT DNI INTO vresultado FROM clientes LIMIT valeatorio, 1;
-- Verificar si se obtuvo un resultado
IF vresultado IS NULL THEN
RETURN "Reload";
END IF;
RETURN vresultado;
END
SELECT f_cliente_aleatorio3() AS DNI_CLIENTE;
P/D: No hizo falta el uso de "Reload".