O que você realmente tem aqui é um relacionamento de muitos para muitos. Pense nisso:cada tag pode estar em vários posts, e cada post pode ter várias tags.
A arquitetura relacional correta para isso é adicionar outra tabela no meio assim:
CREATE TABLE post_tags (
id INTEGER REFERENCES posts,
tag VARCHAR REFERENCES tags
);
Em seguida, solte as
tags
coluna na sua tabela de postagens. Isso resolve todos os seus problemas, porque você pode obter o conjunto de tags em uma postagem ou o conjunto de postagens com uma determinada tag juntando-se a post_tags em diferentes direções. Você também pode obter a lista de tags que começam com algo usando uma consulta LIKE normal, o que será mais difícil se você tiver várias strings concatenadas em um campo.