Die einfache Antwort ist nicht; Speichern Sie niemals das Alter einer Person. Es ändert sich für jede Person jährlich, aber wie Sie sagen, müssen Sie täglich überprüfen, ob es für jede Person korrekt ist.
Nur das Geburtsdatum speichern und dann bei der Auswahl aus der Datenbank das Alter berechnen. Es ist erst today - date of birth
nimmt also fast keine CPUs in Anspruch.
BEARBEITEN:
Um meinen Kommentar in Antwort von ManseUK
zu erweitern Es besteht auch die Möglichkeit des Scheiterns. Was passiert, wenn Ihr Server / Ihre Datenbank ausfällt? Oder Ihr Update wird nicht zur angegebenen Zeit ausgeführt? Oder kommt jemand vorbei und führt es manuell aus, nachdem das Update bereits für dieses Datum ausgeführt wurde? Oder jemand schaltet Ihren Terminplaner aus? Es besteht keine Gefahr, dass dies passiert, wenn Sie Age
berechnen wie Sie aus der Datenbank auswählen.
Zur Auswahl, wenn das Alter zwischen 25 und 30 Jahren liegt und eine DATE-Spalte dateofbirth
angenommen wird Ihre Abfrage würde in etwa so lauten:
select *
from users
where dateofbirth between date_add( curdate(), interval -30 year )
and date_add( curdate(), interval -25 year )
Stellen Sie users
sicher wird auf dateofbirth
indexiert .