Jika Anda tidak menggunakan MySQL kuno, Anda dapat membungkusnya dalam fungsi yang tersimpan.
CREATE FUNCTION `LastMonday`() RETURNS DATETIME
RETURN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ;
lalu panggil
select LastMonday() as LastMonday
Pembaruan:
Jika Anda mengalami masalah kinerja, Anda dapat mempertahankan nilai dalam variabel sesi. Dengan begitu Anda bisa yakin bahwa itu hanya akan dihitung sekali.
set @LastMonday=LastMonday();
select @Lastmonday;
(dalam kueri sederhana ini tentu saja tidak ada bedanya...)