Você pode aproveitar
WEEKDAY()
que retorna um número que representa o dia da semana (0 =segunda-feira, 6 =domingo) e alguns cálculos simples para reescrever essa consulta. Subtraia o dia da semana em que deseja que a semana comece (no seu caso 4 =quinta-feira) da data selecionada, adicione 7 e tire o restante de 7. Isso lhe dará o número de dias a serem subtraídos para obter o início do seu intervalo.
Uma lógica semelhante se aplica para calcular a data de término do intervalo.
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;
Para uma data de início diferente, substitua o dia da semana por
4
na consulta.