Мне кажется, ты не делаешь ничего плохого. Ты еще ничего не делаешь. :)
Мне кажется, что вы на самом деле запрашиваете теги из таблицы сообщений. Сложно рассчитывать на такое поле, потому что оно, вероятно, будет содержать отдельный список тегов. Если бы у вас была отдельная таблица, содержащая все теги, и перекрестная таблица, которая связывает теги с сообщениями, вы можете получить список всех тегов и подсчитать количество связанных сообщений на тег.
В вашей текущей настройке это невозможно, и вам придется анализировать каждое поле и вести подсчет.
Этот подсчет достаточно прост. Создайте массив и добавляйте 1 для каждого тега каждый раз, когда вы его найдете:
$tags = array();
// Loop trough all records:
// Split the tags
// For each tag:
$tags[$tag] = (array_key_exists($tag, $tags)?$tags[$tag] + 1: 1);
После этого цикла у вас будет массив, содержащий все теги и количество раз его использования.