MySQL WHERE子句 - 年龄大于/小于

时间:2014-03-08 00:06:08

标签: mysql

我有以下SELECT,我无法开始工作:

SELECT COUNT(userid) FROM login 
WHERE 17 < YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY) 
AND 46 > YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY);

以下工作正常,所以我知道YEAR方程式是合理的:

SELECT YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY)) 
AS age FROM login;

只是想知道如何让最好的人工作;那么,有两种类似的方式再重复YEAR方程吗?

三江源

2 个答案:

答案 0 :(得分:1)

这只是错字。你错过了括号。

SELECT COUNT(userid) FROM login 
WHERE 17 < YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY)) 
    AND 46 > YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY));

答案 1 :(得分:1)

您可以在此查询中尝试BETWEEN,并且不要忘记丢失的关闭“)”

SELECT COUNT(userid) FROM login 
WHERE YEAR(DATE_SUB(NOW(), INTERVAL TO_DAYS(profile_birthdate) DAY)) BETWEEN 17 AND 46