Jes vala, morao bi malo da probavaš da vidiš ima li neki šablon
A mogao bi i drugačije i naokolo: da napraviš svaki put privremenu tabelu (možda čak u memoriji) i da za nju izvršiš odgovarajuće INSERT i DELETE id-ova.
Npr ako imaš ovako pravila:
1. Allow All: SELECT Id FROM t1 WHERE 1=1 -> i sad te IDjeve INSERTuješ u tu privremenu ("temp") tabelu, ne znam sad koja je sintaksa za MySQL da radi SELECT i INSERT u jednom upitu, verujem da ima, sve baze to imaju
2. Deny 1,4,6: DELETE FROM temp WHERE ID IN (1,4,6)
3. Allow 7,4,3: INSERT INTO temp WHERE ID IN (7,4,3)
I tako redom. I na kraju ti u toj temp tabeli ostanu IDjevi koje trebaš.
E sad, ono prvo pravilo može da povuče dosta ID-jeva, pa možeš malo da optimizuješ logiku pa da ni ne radiš taj prvi upit, već da beležiš šta se uklanja iz skupa svih ID-jeva, itd. U stvari možda ti ni ne treba baza i privremena tabela za to onda, već da radiš sa nizom/kolekcijom/skupovima..?