У меня есть таблица с датами юбилея. Я хочу запрос, который возвращает мне строки юбилеев, которые появятся в ближайшие 10 дней. Например:найти, если юбилей наступает в n дней в MySql
birthdate
---------
1965-10-10
1982-05-25
SELECT birthdate FROM Anniversaries WHERE mystical_magical_mumbo_jumbo <= 10
+------------+
| birthdate |
+------------+
| 1982-05-25 |
+------------+
1 row in set (0.01 sec)
Я хотел бы сохранить запрос в виде x <= 10
, потому что я буду использовать это число 10 в других частях запроса, и если установить его в переменной, можно изменить он один раз повсюду, изменяя переменную и не переписывая запрос.
Возможно, вы уже знаете это, но сохранение выражения в этом формате может заставить функцию с левой стороны выражения, что предотвратит использование MySQL индекса при рождении. –
Имеет ли значение «односторонность»? Если это в форме '10 => x', это позволит использовать индекс? – user151841
@ user151841, в идеале у вас будет только имя столбца в левой части выражения. В этом случае вы можете применить функцию к 10 для получения будущей даты и сделать что-то вроде этого 'WHERE birthdate> = DATE_FUNCTION (10)'. Если кто-то другой не победит меня, я посмотрю на конкретную функцию и дам вам ответ. –