Nếu bạn không sử dụng MySQL cổ, bạn có thể bọc nó trong một hàm được lưu trữ.
CREATE FUNCTION `LastMonday`() RETURNS DATETIME
RETURN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ;
và sau đó gọi
select LastMonday() as LastMonday
Cập nhật:
Nếu bạn đang gặp sự cố về hiệu suất, bạn có thể duy trì giá trị trong một biến phiên. Bằng cách đó, bạn có thể chắc chắn rằng nó sẽ chỉ được tính một lần.
set @LastMonday=LastMonday();
select @Lastmonday;
(trong truy vấn đơn giản này, dĩ nhiên là không có gì khác biệt ...)