La lógica básica ya la tienes, solo que no lo estás razonando compeltamente.
Si tienes la edad "actualizada", en realidad es medio irrelevante. El campo EDAD jamás será confiable en tu tabla por la simple razón de que deberías realizar un proceso de actualización diario (cosa que es un espanto), o de lo contrario no es dato confiable, y toda información basada en datos no confiables es información basura... Cualquier profesor de sistemas te lo puede decir.
Ahora bien, en tu caso hay dos condiciones que se pueden dar:
- El registro tiene fecha de nacimiento, y puede o no tener edad registrada.
- El registro no tiene fecha de nacimiento, pero sí tiene edad.
En realidad, ambas condiciones son lógicamente interexcluyentes, por lo que no se puede hacer una única consulta medianamente razonable que las incluya. Pero lo que
sí se puede hacer es una consulta tal que devuelva ambas posibilidades:
Código MySQL:
Ver original id,
nombre,
date_format(fechanacimiento
, '%d/%m/%Y') fechanacimiento
, id,
nombre,
fechanacimiento,
edad
WHERE (fechanacimiento
IS NULL OR fechanacimiento
= '0000-00-00')