我正在使用此查询来计算用户年龄:
SELECT
((YEAR(CURDATE())-YEAR(um.date_birth)) - (RIGHT(CURDATE(),5)<RIGHT(um.date_birth,5)))
FROM user_meta AS um
WHERE um.uid = 2
我想知道是否有最快/更轻的方法。 我正在使用嵌套在更大的选择中,所以我不介意以某种方式提高整体性能。谢谢。
答案 0 :(得分:1)
如果您发现需要经常计算字段,我建议您更改表格以添加新列以方便您的计算。
例如,不是计算每个查询中每个出生日期的年份,而是简单地添加YEAR列,用出生年份更新表ONCE,并将年份存储为INT。
这样,每次你需要赶上一年,只需选择字段。
答案 1 :(得分:1)
select (CURDATE()-birth_dt)/365 from dual