Ja bym to zrobił tak jak poniżej. "odrzucony_obrazek" to tabelka z 3 kolumnami: id, obrazek_id, ip. Każdy rekord to jeden odrzucony przez danego użytkownika obrazek. Dzięki temu wszystkie operacje będą łatwiejsze - dodanie obrazka (1 prosty insert), pobranie listy dostępnych obrazków (1 zwykły select) czy usunięcie jakiegoś obrazka z listy ignorowanych (1 delete).
Moim zdaniem takie podejście jest lepsze, prostsze w implementacji i łatwiejsze w dalszej rozbudowie (np. każdy obrazek jest ignorowany tylko przez tydzień).
SELECT *
FROM obrazek
WHERE id NOT IN (
SELECT obrazek_id FROM odrzucony_obrazek WHERE ip = '127.0.0.1'
)
[edit]Żeby trochę zoptymalizować, możesz IP zamienić na postać decymalną (
ip2long) i założyć indeks na kolumnę "ip" w tabelce "odrzucony_obrazek".