Du kan dra nytta av WEEKDAY()
som returnerar ett tal som representerar veckodagen (0 =måndag, 6 =söndag) och lite enkel matematik för att skriva om den här frågan.
Subtrahera den veckodag du vill att veckan ska börja på (i ditt fall 4 =torsdag) från det valda datumet, lägg till 7 och ta resten från 7. Detta ger dig antalet dagar att subtrahera för att få början av ditt intervall.
En liknande logik gäller för att beräkna slutdatumet för intervallet.
SELECT *
FROM transactions
WHERE DATE(transactionDate)
BETWEEN DATE_SUB(DATE(NOW()), INTERVAL (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
AND DATE_ADD(DATE(NOW()), INTERVAL 6 - (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
ORDER BY transactionDate DESC;
För ett annat startdatum, ersätt veckodagen med 4
i frågan.