2013-05-18 2 views
0

есть способ использования MySQL, который позволяет мне получить результат с ассоциативными значениями (например, в ассоциативном массиве php).Ассоциативные значения в результате MySQL

Например:

MovieName: 'Пианист', директор: 'Роман Полански', язык: 'Английский', актер: 'Эдриан Броуди' 'Emilia Fox' 'Фрэнк Финлей.

То есть, получить все соответствующие актеры в виде одной строки. Возможно ли это, или же я должен придерживаться:

MovieName: 'Пианист', директор: 'Роман Полански', язык: 'Английский', актер: 'Эдриан Броуди'

MovieName: ' «Pianist», режиссер: «Roman Polanski», язык: «английский», актер: «Эмилия Фокс»

Moviename: 'The Pianist', Режиссер: 'Roman Polanski', Язык: 'Английский', Актер: Frank Finlay '

+0

И теперь я столкнуться с другой проблемой. У меня, конечно, может быть более одного языка. Но когда я добавляю другой язык, результаты дублируются. Другими словами, актеры перечислены два раза. И если я добавлю другой язык (всего три языка), актеры будут перечислены по 3 раза каждый. Как это решить? Я пытался использовать GROUP_CONCAT для языков, но это не сработало, как я планировал;) Есть ли способ показать всех участников и все языки в одной строке результатов? –

ответ

1

Что вы хотите, это не ассоциативный массив, а список значений, принадлежащих к одной и той же группе. Для этого вы можете использовать GROUP_CONCAT, группируя запрос по MovieName, режиссера и языка, как это:

SELECT moviename, director, language, 
     GROUP_CONCAT(actor) AS actors 
    FROM movies 
GROUP BY moviename, director, language 
+0

Спасибо, человек! Это было именно то, что я искал: D –

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