An RDBMS is a (potentially) huge exercise in set theory.  So a collection of tags associated with, for example, a show, is a 'set'.  SQL provides the 'in' clause for such things:

select show from tbl_show
where 'elephant' in
select tag, show_id from shows;

or something like that.

I've never even exposed my brain to how something like Google indexes the world's web sites.  But you can bet they don't use a comma-separated list in a single table column.

I think we just found a subject for my next database show...set theory and the 'IN' clause.