2015-07-11 60 views
1

我有以下查詢:複雜串聯BY串

SELECT 
    title_imdb_id, person_imdb_id, role_type_id, role_name 
FROM 
    mturk_imdbcredit 
WHERE 
    title_imdb_id=1 

這給了我:

title_imdb_id person_imdb_id role_type_id role_name 
1 1588970 Actor Herself 
1 5690 Director NULL 

我想組由title_imdb_id並串連由:分隔三個字段和由,分隔的行。最終的結果應該是:

1588970:Actor:Herself, 5690:Director: 

這是可能的SQL辦?

+0

有沒有總是精確地1演員和1個司長?換句話說,你是否想要2列,或者可以有任何數字(例如對於給定標題的許多演員) – Bohemian

+0

可以有很多學分 – David542

+0

@Bohemian請參閱下面的答案。它可以用group_concat完成。 – David542

回答

3

您可以使用另外一個領域CONCAT到GROUP_CONCAT

SELECT 
    GROUP_CONCAT(
     CONCAT (
      person_imdb_id, ':', role_type_id, ':', IFNULL(role_name, '') 
     ) SEPARATOR ', ' 
    ) 
FROM 
    mturk_imdbcredit 
GROUP BY 
    title_imdb_id 

這給了我:

1588970:Actor:Herself, 5690:Director: