Se quello che vuoi è che questo avvenga automaticamente hai due possibili strategie:

1) Fai in modo che esista un ordinamento (per esempio, i record che hanno principale attivato e visti in ordine temporale inverso, dal più recente al più vecchio) che, fornito ad una select, ti metta nelle prime tre posizioni i tre record che ti servono, dopodichè usi una LIMIT per prendere solo i primi tre

2) Inserisci un TRIGGER nel db che, sull'inserimento di un nuovo record, si occupi di togliere il flag ai record che non hanno più diritto di averlo.

Io fossi in te seguirei la via 1) che è più semplice e diretta, e ti permette anche, in futuro, di sapere come era la situazione in passato semplicemente escludendo i record inseriti dopo la data che ti interessa...