0

我正在使用此查询来计算用户年龄:

SELECT 
((YEAR(CURDATE())-YEAR(um.date_birth)) - (RIGHT(CURDATE(),5)<RIGHT(um.date_birth,5))) 
FROM user_meta AS um
WHERE um.uid = 2

我想知道是否有最快/更轻的方法来做到这一点。我在更大的选择中使用它,所以我不介意以某种方式提高整体性能。谢谢你。

4

2 回答 2

1

如果您发现需要经常计算某个字段,我建议您 ALTER 您的表格以添加新列以方便您的计算。

例如,不是在每个查询中计算每个出生日期的 YEAR,而是简单地添加一个 YEAR 列,用出生年份更新表 ONCE,并将年份存储为 INT。

这样,每次您需要赶上年份时,只需选择该字段即可。

于 2012-04-25T20:24:36.653 回答
1
select (CURDATE()-birth_dt)/365 from dual
于 2012-04-25T20:29:11.650 回答