Помогите соcтавить SQL запрос в MySql

Пишу вопрос первый раз не судите строго.

У меня есть таблица manager в MySql:

create table manager (id_manager int, m_manager int, y_manager int);
insert into manager values (777777, 5, 2022), (777777, 9, 2021), (777777, 5, 2021), (555555, 8, 2019), (777777, 1, 2019);

Допустим есть переменные php:

$m_manager = 07;
$y_manager = 2020;
$id_manager = 777777;

Надо составить php запрос в базу который достанет ближайшую запись по дате. Я завис на этом:

mysqli_query($bd, "SELECT * FROM manager WHERE id_manager='$id_manager' *вот тут начинаются проблемы*");

По данным из переменных выше достать мы должный запись 05.2021. В таблице не очень много записей, можно добавить столбец даты или еще чего если это потребуется. Буду рад любой помощи в решении данного вопроса. Заранее благодарен.


Ответы (1 шт):

Автор решения: Aleksey Vaganov

Отсортируйте по году и месяцу по убыванию и возьмите первую запись:

SELECT * FROM manager WHERE id_manager='$id_manager' ORDER BY y_manager DESC, m_manager DESC LIMIT 1;

Чтобы выбрать строку с ближайшей большей датой используйте запрос:

SELECT * FROM manager WHERE id_manager='$id_manager' and concat(y_manager, m_manager) >= "20207" ORDER BY y_manager ASC, m_manager ASC LIMIT 1;

Ссылка на песочницу.

→ Ссылка