Non avevo letto tutto. Comunque.

Codice PHP:
select FROM num as T0
INNER JOIN 
(
  
SELECT T1.idmin(T2.n) AS minimo FROM num T1
  INNER JOIN 
(     
   
SELECT id,n1 AS n FROM `numWHERE n1 <> 0 UNION
   SELECT id
,n2 AS n FROM `numWHERE n2 <> 0 UNION
   SELECT id
,n3 AS n FROM `numWHERE n3 <> 0 UNION
   SELECT id
,n4 AS n FROM `numWHERE n4 <> 0 UNION
   SELECT id
,n5 AS n FROM `numWHERE n5 <> 0
  
) AS T2 on T1.id T2.id
  GROUP BY T1
.id
) AS T3 on T0.id T3.id
HAVING min
(T3.minimo