Brug DAYOFWEEK i din forespørgsel, noget som:
SELECT * FROM mytable WHERE MONTH(event_date) = 5 AND DAYOFWEEK(event_date) = 7;
Dette vil finde alle oplysninger om lørdage i maj.
For at få den hurtigste læsning gemme et denormaliseret felt, der er ugedagen (og hvad du ellers har brug for). På den måde kan du indeksere kolonner og undgå fuld tabelscanninger.
Bare prøv ovenstående først for at se, om det passer til dine behov, og hvis det ikke gør det, tilføj nogle ekstra kolonner og gem dataene på skrivning. Bare vær opmærksom på opdateringsanomalier (sørg for at opdatere dag_i_uge-kolonnen, hvis du ændrer begivenhedsdato).
Bemærk, at de denormaliserede felter vil øge den tid, det tager at skrive, øge beregningerne ved skrivning og optage mere plads. Sørg for, at du virkelig har brug for fordelen og kan måle, at den hjælper dig.