我想詢問有關更新表格中的年齡列的信息。是否可以根據我的表格中的出生日期列每年自動更新年齡。年齡欄和出生日期欄位於同一個表格中。但是,如果這是不可能的,也許我只是每次選擇年齡欄並從出生日期欄計算年齡時更新年齡表。我只是有點好奇,如果有一個即時的方式來做到這一點。每年自動增加或更新年齡列mysql
回答
不要存儲「年齡」。如果您有DOB列,那麼「年齡」僅僅是當前日期和時間與DOB之間的差異。如果您希望根據特定日期計算「年齡」,那麼它仍然是該日期和DOB之間的差異。
您可以使用MySQL內置TIMESTAMPDIFF
函數來計算「時代」多年來,例如:在你的出生日期欄
SELECT TIMESTAMPDIFF(YEAR, '1993-10-01' ,NOW()) AS age_in_whole_years
替補多爲在表達字面。只要您運行包含此表達式的語句,就會自動計算該值。你不能得到更多的「自動」比。
如果您需要根據年齡進行「搜索」,請改爲在DOB列上使用謂詞。要找到「年齡」小於21的行,那麼DOB不到21年前,也就是說,DOB大於今天的日期減去21年。例如
WHERE t.dob > NOW() - INTERVAL 21 YEARS
要回答你問的問題:
沒有,有沒有在MySQL的是將「自動增加或更新」存儲在「年齡」列中的值。 (要更改存儲在列中的值,您需要運行UPDATE語句。)可以將計劃任務設置爲定期運行,但該任務需要發出UPDATE語句。如果你願意,你可以稱之爲「自動」。他們已經知道存儲的「年齡」列的「自動遞增」是一個壞主意,而且已經有了更好的解決方案。)
我非常肯定,StackOverflow不存儲問題和答案的「年齡」,「1小時前問」,或發佈「4個月前」。讓他們翻閱桌面,爲每個問題,每個評論,每個答案......更新一行,這將是瘋狂的。他們真正需要的是存儲日期和時間的東西發佈,他們設置它,並忘記它...沒有攪動更新語句,獲得排他鎖,生成撤銷/回滾,寫入重做日誌,這隻會錘擊數據庫。對於檢索,他們已經在做所有的工作來運行SQL來檢索行,發佈的日期時間在那裏,他們只是檢索它,並且它對於「年齡」計算的處理量是微不足道的。
啊,你的例子真的讓我大開眼界大聲笑 – 2014-10-04 05:47:29
- 1. 每年自動更改的年齡
- 2. 重置Mysql自動增加值每年?
- 3. 增量列每年在MYSQL
- 4. 自動遞增列其重置每年
- 5. 我想每年更改年齡列和性別下拉菜單
- 6. 自動測試用戶的年齡每年都會失敗
- 7. 每年更新Mysql中的列
- 8. 自動年齡計算ASP.Net
- 9. 如何自動更改年齡
- 10. MySQL - 年齡分鐘
- 11. 在MYSQL中每年更改自動增量字段值
- 12. 每年自動更新表格數據
- 13. 如何年齡增加ageList = [12,13,23]
- 14. MYSQL:計算年齡從2年開始
- 15. git推動年齡
- 16. 每年重置自動增量(身份)
- 17. 每年重置自動增量編號
- 18. 我想每24小時增加一個表的年齡值
- 19. 在sqlite中自動更新人的年齡
- 20. 在SQL中計算年齡年齡
- 21. 從MySQL選擇年齡和
- 22. 年齡格式 - 年和月
- 23. 發現DateOFBirth來自年齡
- 24. AngularJs:出生時自動獲得年齡
- 25. 當出生時自動獲得年齡
- 26. 自動遞增年環
- 27. 每年增加每節患者預約
- 28. 添加到數組列表(按年齡)
- 29. 按年齡打印陣列
- 30. 加入年齡段爲AgeGroup
請勿使用年齡欄;記錄出生日期,並基於此計算年齡。 – 2014-10-04 01:45:43
您可以使用事件調度程序定期更新年齡列。 – Barmar 2014-10-04 01:46:41
@JonathanLeffler是的,我也是這麼想的。但我有點好奇,有沒有辦法做到這一點。如果這是不可能的,也許我只是刪除年齡列 – 2014-10-04 01:48:47