是的,这可能听起来很奇怪。
在高级个人资料搜索表单中,您可以按年龄过滤。
现在你要在现场输入18岁或其他年龄。
我将生日存储在mysql数据库中,在用户的生日字段中我有例子:1990-02-02
如何在查询中按年龄过滤?
我应该先做一个查询,让所有用户的生日变老,然后比较它们吗?对于每个用户来说太过分了。
答案 0 :(得分:2)
我打赌这就是你要找的东西:
SELECT * FROM mytable
WHERE TIMESTAMPDIFF(YEAR, mytable.birthday,'$currentTime') > '$ageFromForm';
要对您执行此操作的数据进行排序:
SELECT *, (TIMESTAMPDIFF(YEAR, mytable.birthday, '$currentTime')) AS age
FROM mytable WHERE TIMESTAMPDIFF(YEAR,'$birthday','$currentTime') > '$ageFromForm'
ORDER BY age;
我希望这会有所帮助;) 斯拉夫
答案 1 :(得分:1)
未经测试,但应作为开始的基础:
SELECT <columns> FROM users WHERE birthday < SUBDATE(NOW(), INTERVAL 18 YEAR)