Тема: MYSQL: Обмеження діапазону за роком та місяцем
Якось вже тут запитував дещо в спільноти, мені тоді добряче допомогли. Вирішив спробувати ще раз.
Є оце таблиця з полями `year` (4 цифри) та `month` (1 або 2 цифри), треба вибрати записи що знаходяться в межах діапазону $start - $end виду 'YYYY-MM';
Рішення в лоб - розбити $start та $end на $start_year, $start_month, $end_year та $end_month:
SELECT * FROM ... WHERE (`year` >= $start_year OR (`year` == $start_year AND `month` >= $start_month)) AND (`year` <= $end_year OR (`year` == $end_year AND `month` <= $end_month))
... якось виглядає складнувато і ще треба попередньо розбивати вихідні дані.
Як я зробив, але мені здається воно трохи тормозить:
SELECT * FROM ... WHERE CONCAT(`year`, "-", LPAD(`month`, 2, "0")) >= $start AND CONCAT(`year`, "-", LPAD(`month`, 2, "0")) <= $end
Є відчуття, що існують ще й інші, можливо, більш красиві рішення. Дуже дякую за відповіді.