Я попытался упростить свои длинные запросы с помощью пользовательских переменных в Mysql. К сожалению, эти переменные не ведут себя в предложении where должным образом, особенно в тех переменных, где хранится дата. Вот 3 упрощенных запроса:
SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE @var_date >= "2000-01-01"
Возвращает 0 строк
Еще один:
SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01"
Это также возвращает 0 строк.
SELECT id,
@var_date := `date`
FROM aroma_exchanges
WHERE `date` >= "2000-01-01"
Этот работает, как и ожидалось, возвращает много строк. В моем случае определение date
очень сложное, и в моем реальном запросе я использовал его несколько раз, поэтому я не хочу повторять один и тот же подзапрос 5-10 раз, если я могу сохранить его в одной переменной и использовать как нужно.
Вопрос: как заставить первый или второй запрос работать правильно? Спасибо.