2012-03-19 6 views
6

У меня есть MySQL таблицы комментарии в этой таблице поле является теги и все теги запятыми какMySQL группы по разделенных запятыми значений

Комментарии Таблица

Name Reply Tags 
a  b  new,old,facebook,fb 
b  d  water,faebook,wall 
b  r  wall,php,fb 
c  q  name,facebook,email 
a  y  weather,cold,old 
a  w  twitter,next,pet,fb 

Мне нужно, чтобы получить наиболее используемый тег в этой таблице с запросом mysql.

+3

Рассмотрите возможность реорганизации дизайна вашей базы данных и сохраните теги для комбинаций «Имя/Ответить» в отдельной таблице с одной строкой для каждого тега. –

+1

Вы должны _really_ попытаться нормализовать свою таблицу, MySQL действительно не очень хорош в разбиении строк. Запрос выполним, но не очень эффективен. –

+1

, если вы не можете нормализовать базу данных, тогда это может быть сделано только на уровне php-скрипта. – neeraj

ответ

3

Я думаю, что лучший подход - использовать отдельную таблицу для тегов и отношения между тегами и вашей таблицей (то есть: C ommentTags), это позволит вам быстро находить те комментарии, которые используют какой-либо специальный тег, делать статистику и т. д. В соответствии с вашим текущим подходом вы каждый раз используете разделение строк для каждой строки.

Теперь, если вы застряли в своем текущем подходе, here - вопрос о разделении строк, который может оказаться полезным. Но я предвижу большое количество жалоб пользователей ...

+0

Спасибо за ваш быстрый ответ, но моя база данных не нормализована, поэтому я могу получить это .... @Joachim Isaksson, как я могу это сделать в PHP .. –

Смежные вопросы