J'ai une table utilisateur avec l'utilisateur de anniversaire (AAAA-MM-JJ) ainsi que l'âge . Je veux exécuter un script pour calculer et mettre à jour la colonne d'âge tous les soirs via cron.colonne age Mise à jour MySQL
Cette SQL fonctionne bien pour la sélection et le calcul de l'âge:
SELECT
DATE_FORMAT(NOW(), '%Y') -
DATE_FORMAT(`birthday`, '%Y') -
(DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`birthday`, '00-%m-%d')) AS age
FROM
`jos_jcourse_students`
Mais est-il possible de mettre à jour la colonne d'âge avec une seule déclaration? Je ai essayé ce qui suit, mais tout ce que j'ai réussi à faire était de peupler la colonne d'âge avec tous les 0! Ai-je besoin d'utiliser une sorte de boucle MySQL?
UPDATE
`jos_jcourse_students`
SET
age = "SELECT DATE_FORMAT(NOW(), '%Y') -
DATE_FORMAT(`birthday`, '%Y') -
(DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(`birthday`, '00-%m-%d')) AS age
FROM
`jos_jcourse_students`"
vous avez essayé cette requête à la fois? –
La colonne d'âge semble redondante ici. Une raison pour laquelle vous ne pourriez pas vous en débarrasser complètement et calculer l'âge au besoin? Pas comme si c'était compliqué d'un calcul ... :) – cHao
ouais, on aurait pu s'en débarrasser, mais ça a déjà été programmé de cette façon donc on ne veut pas changer la structure db;) – lee