我有一個用戶表,其中包含用戶的生日(YYYY-MM-DD)以及年齡。我想運行一個腳本來計算和通過cron每晚更新年齡欄。MySQL中的更新時間列
這個SQL行之有效的選擇和計算年齡:
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`
但是,它可能更新年齡柱用一個語句?嘗試了以下,但我設法做的是填充所有0的年齡欄!我需要使用某種類型的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`"
你一次嘗試這樣的查詢? – 2012-03-21 06:27:17
年齡層在這裏似乎是多餘的。任何你無法完全擺脫它的原因,並根據需要計算年齡?不喜歡它是一個複雜的計算... :) – cHao 2012-03-21 06:29:48
是的,本來可以擺脫它,但它已經被編程,所以不想改變數據庫結構;) – lee 2012-03-21 06:46:10