Het simpele antwoord is niet doen; bewaar nooit een leeftijd van een persoon. Het verandert jaarlijks voor elke persoon, maar zoals u zegt, u moet dagelijks controleren of het voor elke persoon correct is.
Sla alleen de geboortedatum op en bereken vervolgens de leeftijd bij het selecteren uit de database. Het is pas today - date of birth
dus er zijn bijna geen CPU's nodig.
BEWERKEN:
Om mijn opmerking in ManseUK's antwoord
uit te breiden er is ook de mogelijkheid van falen. Wat gebeurt er als uw server/database down is? Of wordt uw update niet uitgevoerd op het opgegeven tijdstip? Of komt iemand langs en voert het handmatig uit nadat de update al voor die datum is uitgevoerd? Of zet iemand je planner uit? Er is geen gevaar dat dit gebeurt als u Age
berekent zoals u uit de database selecteert.
Om te selecteren waar de leeftijd tussen 25 en 30 jaar ligt en uitgaande van een DATE-kolom dateofbirth
uw vraag zou zoiets zijn als:
select *
from users
where dateofbirth between date_add( curdate(), interval -30 year )
and date_add( curdate(), interval -25 year )
Zorg ervoor dat users
is geïndexeerd op dateofbirth
.