我在我的WHERE
条款
dob <= DATE_SUB(CURDATE(),INTERVAL 1 YEAR) AND dob >= DATE_SUB(CURDATE(),INTERVAL 19 YEAR)
它运作正常,它根据他们的DOB按年龄搜索一个人, 但是存在一些精确问题。
请考虑以下事项:
1 to 19 = 397
20-25 = 1350
26- 30 = 1139
31-35 = 601
36-40 = 346
41-45 = 218
46- 50 = 154
51-55 = 139
56-60 = 65
61-85 = 78 Total = 4487
如果我使用相同的方法,但搜索1 - 85返回 5607
我很困惑,但是再次约会是我的弱点,所以任何帮助都会受到赞赏。
答案 0 :(得分:3)
哦,我想当你做DATE_SUB(CURDATE(),INTERVAL 19 YEAR)
然后DATE_SUB(CURDATE(),INTERVAL 20 YEAR)
你错过了19年的人,所以你错过了19,26,30,35等人......
应该是
dob < DATE_SUB(CURDATE(),INTERVAL 1 YEAR) AND dob >= DATE_SUB(CURDATE(),INTERVAL 19 YEAR)
然后
dob < DATE_SUB(CURDATE(),INTERVAL 19 YEAR) AND dob >= DATE_SUB(CURDATE(),INTERVAL 25 YEAR)
编辑:
1 to 19 = ??
19 to 25 = ??
25 to 30 = ??
30 to 35 = ??
35 to 40 = ??
40 to 45 = ??
45 to 50 = ??
50 to 55 = ??
55 to 60 = ??
60 to 85 = ??`