Placing multiple data elements in a single field is a Bad Idea.
You want to create a related table -- simple really:
messageID
tag
and populate that table with individual tag items
messageID: 1
tag: database
messageID: 1
tag: related tables
messageID: 2
tag: related tables
messageID: 3
tag: related tables
messageID: 3
tag: database
etc
Then you'll use a JOIN to find the messages related to the tags
SELECT * FROM message
INNER JOIN messageTag ON messageID=message.ID
WHERE tag='database'
GROUP BY messageID
OR multiple tags:
SELECT * FROM message
INNER JOIN messageTag ON messageID=message.ID
WHERE tag IN ('database','related tables')
GROUP BY messageID
etc