Всем привет!
Только начал изучать SQL. Столкнулся с нетривиальной задачей.
Есть таблица 'user' в которой есть стобец birthday (день рождения пользователя). Требуется получить выборку всех пользователей, отсортированную по столбцу birthday таким образом, чтобы выше находились те, у которых день рождения ближе всего к текущей дате.
Вопрос номер один. Это вообще возможно сделать посредством самой базы, не прибегая к средствая ЯП?
Если ответ утвердительный, тогда вот второй вопрос: как это сделать? Подскажите запрос, пожалуйста. Сам пока пришел вот к такому решению (взятие разницы):
SELECT id,name,birthday, DATEDIFF(`birthday`, CURDATE()) AS diff FROM `user` order by CASE WHEN diff < 0 THEN 1 ELSE 0 END, diff;
Не это работает не так как надо.
Заранее спасибо.