Помогите со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;
Ссылка на песочницу.