2012-04-04 2 views
3

Я GROUP_CONCAT кучи отзывов от моего дб, который превращает его в нечто вроде этого:GROUP_CONCAT и затем взрывающийся его в массив

Это обзор 1, Это обзор 2

потом взорвать его в массив, как:

$review = $row->review; 
$row->review = explode(',', $review); 

Это прекрасно работает, пока кто-то там обзор не добавляет , то это obsoulvy больше не работает. Так есть ли способ group_concat и поставить что-то помимо запятой между ними? Есть ли лучший способ исправить это? Любые идеи очень приветствуются.

ответ

2

Да, не используйте GROUP_CONCAT. Создайте подтаблицу, содержащую обзоры и соответствующие отношения, связывающие каждый обзор с любыми объектами, с которыми вы имеете дело.

Если у вас уже есть это, и просто используйте GROUP_CONCAT, чтобы получить несколько отзывов в одном наборе результатов ... тогда все равно не используйте GROUP_CONCAT. Используйте подзапрос.

+0

Да, я понял, хорошо, я просто изменю его. Спасибо за помощь. – Jacinto

+0

Добро пожаловать. Если вам интересно, я бы рекомендовал эту книгу (которая научила меня злу «GROUP_CONCAT» и друзей): http://www.amazon.com/Beginning-MySQL-Database-Design-Optimization/dp/1590593324/ref = sr_1_1? ie = UTF8 & qid = 1333583845 & sr = 8-1 –

+0

, но group_concat может быть таким классным ..... ха-ха. Мне нравится использовать его иногда для быстрого запроса, когда мне нужно захватить кучу идентификаторов – Ascherer

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