2014-09-05 40 views
-1

如何修改以下內容以便按字母順序顯示地名(GG.Name)?將訂單條款添加到GROUP_CONCAT

GROUP_CONCAT(CONCAT('<a href=\"', GG.URL, '\" title=\"', GG.Name, '\">', GG.Name, '</a>')) AS Names, 

我原來的GROUP_CONCAT子句包含「ORDER BY」,但我無法使其與我修改後的代碼一起工作。

另外,你知道我如何修改它,以便每個逗號之後都有一個空格嗎?它顯示亞利桑那州,加利福尼亞州,德克薩斯我實際上已經用一個簡單的str_replace函數修復了它,但我只是想知道是否有一種方法可以在沒有修復的情況下正確顯示它。

編輯:

我嘗試以下兩個變體,但它們都產生語法錯誤......

SELECT PLAN.Latin Latin2, PLAN.Common, PLAN.Rank, PLAN.Planimal, PLAN.Family, PLAN.Order1, PLAN.NoSymbol, PLAN.National, GS.Symbol, GS.Latin, GG.URL AS GURL, GROUP_CONCAT(CONCAT('<a href=\"', GG.URL, '\" title=\"', GG.Name, '\">', GG.Name, '</a>' ORDER BY GG.Name SEPARATE ', ')) AS Names, GG.IDParent 
FROM gs_planimals PLAN 
LEFT JOIN gs GS ON GS.Latin = PLAN.Latin 
LEFT JOIN gw_geog GG ON GG.IDArea = GS.IDArea AND GG.IDParent = :DBParent 
WHERE Rank != 55 AND PLAN.National = 'nat' AND NoSymbol != '1' 
GROUP BY PLAN.Latin 
ORDER BY PLAN.N, GG.Name 

版本#2:

SELECT PLAN.Latin Latin2, PLAN.Common, PLAN.Rank, PLAN.Planimal, PLAN.Family, PLAN.Order1, PLAN.NoSymbol, PLAN.National, GS.Symbol, GS.Latin, GG.URL AS GURL, GROUP_CONCAT(CONCAT('<a href=\"', GG.URL, '\" title=\"', GG.Name, '\">', GG.Name, '</a>') ORDER BY GG.Name SEPARATE ', ') AS Names, GG.IDParent 
FROM gs_planimals PLAN 
LEFT JOIN gs GS ON GS.Latin = PLAN.Latin 
LEFT JOIN gw_geog GG ON GG.IDArea = GS.IDArea AND GG.IDParent = :DBParent 
WHERE Rank != 55 AND PLAN.National = 'nat' AND NoSymbol != '1' 
GROUP BY PLAN.Latin 
ORDER BY PLAN.N, GG.Name 

回答

1

語法井documented。請注意,你甚至不需要concat(),因爲group_concat()可以帶多個參數。所以,如果我理解正確:

GROUP_CONCAT('<a href=\"', GG.URL, '\" title=\"', GG.Name, '\">', GG.Name, '</a>' 
       ORDER BY GC.Name SEPARATOR ', ') AS Names, 
+0

嗯......這與我之前嘗試的類似。我編輯了我的原始文章,添加了兩個我嘗試沒有成功的變體(語法錯誤)。我也嘗試了刪除CONCAT(和額外括號)的相同兩個變體,結果相同。 – 2014-09-05 01:44:33