Wat je hier eigenlijk aan de hand hebt, is een veel-op-veel-relatie. Denk er eens over na:elke tag kan op meerdere berichten staan en elke post kan verschillende tags hebben.
De juiste relationele architectuur hiervoor is om een andere tabel in het midden toe te voegen, zoals deze:
CREATE TABLE post_tags (
id INTEGER REFERENCES posts,
tag VARCHAR REFERENCES tags
);
Laat dan de tags
vallen kolom in je berichtentabel.
Dit lost al je problemen op, omdat je de set tags op een bericht of de set berichten met een bepaalde tag kunt krijgen door in verschillende richtingen tegen post_tags aan te sluiten. U kunt de lijst met tags die met iets beginnen ook verkrijgen met een gewone LIKE-query, wat moeilijker zal zijn als u een aantal reeksen aaneengeschakeld in één veld heeft.