Hola juansemaster:
Tu problema no es de MySQL, sino más bien de la forma en que "pintas" o presentas la información. Eso de "pintar de verde" supongo que lo haces en una página WEB, o en algún tipo de informe, eso no tiene nada que ver con MySQL. En todo caso, con MySQL puedes obtener qué nota es la mayor, para que al momento de pintar la columna respectiva, si la calificación es igual a la calificación mayor, entonces cambiar el formato.
Hay varias formas para obtener qué nota es la mayor, la forma "estandar" sería comparar las cuatro columnas con un CASE-WHEN de manera exhaustiva, es decir, hacer algo como esto:
Código MySQL:
Ver original+------+----------+-------------+--------+-----------+----------+
| ID | Nombre | matematicas | lengua | naturales | sociales |
+------+----------+-------------+--------+-----------+----------+
| 1 | juan | 9 | 7 | 10 | 7 |
| 2 | pepito | 10 | 6 | 9 | 4 |
| 3 | jaimito | 8 | 10 | 8 | 3 |
| 4 | leonardo | 8 | 9 | 9 | 8 |
+------+----------+-------------+--------+-----------+----------+
-> id, nombre, matematicas, lengua, naturales, sociales,
-> CASE WHEN (matematicas
>= lengua
AND matematicas
>= naturales
AND matematicas
>= sociales
) THEN matematicas
-> WHEN (lengua
>= matematicas
AND lengua
>= naturales
AND lengua
>= sociales
) THEN lengua
-> WHEN (naturales
>= matematicas
AND naturales
>= lengua
AND naturales
>= sociales
) THEN naturales
-> WHEN (sociales
>= matematicas
AND sociales
>= lengua
AND sociales
>= naturales
) THEN sociales
+------+----------+-------------+--------+-----------+----------+------------+
| id | nombre | matematicas | lengua | naturales | sociales | nota_mayor |
+------+----------+-------------+--------+-----------+----------+------------+
| 1 | juan | 9 | 7 | 10 | 7 | 10 |
| 2 | pepito | 10 | 6 | 9 | 4 | 10 |
| 3 | jaimito | 8 | 10 | 8 | 3 | 10 |
| 4 | leonardo | 8 | 9 | 9 | 8 | 9 |
+------+----------+-------------+--------+-----------+----------+------------+
La forma en que "pintas" estos datos, depende del lenguaje de programación que estés utilizando. Observa en el último de los casos, la máxima calificación se puede presentar en más de una columna (inclusive en todas las columnas), aquí depende de tú lógica de negocio si "pintas" todas de verde o sólo la primera.
Si te interesa saber el "nombre" de la materia con la mayor nota, en lugar de devolver la nota, devuelves el nombre:
Código MySQL:
Ver original -> id, nombre, matematicas, lengua, naturales, sociales,
-> CASE WHEN (matematicas
>= lengua
AND matematicas
>= naturales
AND matematicas
>= sociales
) THEN 'matematicas' -> WHEN (lengua
>= matematicas
AND lengua
>= naturales
AND lengua
>= sociales
) THEN 'lengua' -> WHEN (naturales
>= matematicas
AND naturales
>= lengua
AND naturales
>= sociales
) THEN 'naturales' -> WHEN (sociales
>= matematicas
AND sociales
>= lengua
AND sociales
>= naturales
) THEN 'sociales' +------+----------+-------------+--------+-----------+----------+-------------+
| id | nombre | matematicas | lengua | naturales | sociales | nota_mayor |
+------+----------+-------------+--------+-----------+----------+-------------+
| 1 | juan | 9 | 7 | 10 | 7 | naturales |
| 2 | pepito | 10 | 6 | 9 | 4 | matematicas |
| 3 | jaimito | 8 | 10 | 8 | 3 | lengua |
| 4 | leonardo | 8 | 9 | 9 | 8 | lengua |
+------+----------+-------------+--------+-----------+----------+-------------+
Otra vez, en el último de los casos, hay dos materias con la calificación más alta (Lengua y naturales), en este caso sólo presenta la primera...
Saludos
Leo.