Да, это может показаться странным.
В расширенной форме поиска профиля, где вы можете фильтровать по возрасту.
Теперь вы наберете 18 или другой возраст в поле.
Я храню дни рождения, в mysql db, в поле дня рождения у пользователей есть пример: 1990-02-02
Как я могу фильтровать по возрасту тогда, в запросе?
Должен ли я сначала сделать запрос раньше, сделать все дни рождения для пользователей возрастом, а затем сравнить их? Было бы слишком много, чтобы взять каждого пользователя.
Готов поспорить, это то, что вы ищете:
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;
Надеюсь, это поможет;) Славянский
Непроверенный, но должен работать как основа для начала:
SELECT <columns> FROM users WHERE birthday < SUBDATE(NOW(), INTERVAL 18 YEAR)