Если вы не используете старый MySQL, вы можете заключить это в сохраненную функцию.
CREATE FUNCTION `LastMonday`() RETURNS DATETIME
RETURN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ;
, а затем вызвать
select LastMonday() as LastMonday
Обновление:
Если у вас проблемы с производительностью , вы можете сохранить значение в переменной сеанса. Таким образом, вы можете быть уверены, что он будет рассчитан только один раз.
set @LastMonday=LastMonday();
select @Lastmonday;
(в этом простом запросе это, конечно, не имеет значения ...)