Obtenha diferença em anos entre duas datas no MySQL como um inteiro

Eu estou tentando calcular quantos anos tem uma pessoa em um banco de dados.
Vamos supor que tenhamos esta tabela simples:

<code>student(id, birth_date);
</code>

Onde id é a chave primária (verdadeiramente a tabela é mais complexa, mas eu a simplifiquei).
Eu quero saber quanto velho é uma pessoa solteira:

<code>select id, datediff(curdate(),birth_date) 
from student
</code>

Mas ele retorna um resultado em dias, e não em anos. Eu poderia dividi-lo por 365:

<code>select id, datediff(curdate(),birth_date) / 365
from student
</code>

Mas ele retorna um valor de ponto flutuante e eu quero um inteiro.
Então eu poderia calcular os anos:

<code>select id, year(curdate())-year(birth_date) 
from student
</code>

Mas há um problema: por exemplo, agora é maio, se uma pessoa nasceu em junho de 1970, ainda tem 31 anos e não 32, mas a expressão retorna 32.
Eu não posso sair desse problema, alguém pode me ajudar?

questionAnswers(9)

yourAnswerToTheQuestion