2014-09-05 3 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, но я просто задавался вопросом, есть ли способ правильно отобразить его без этого исправления.

EDIT:

Я попробовал оба из следующих вариантов, но они оба производят синтаксические ошибки ...

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 (и дополнительных скобок) с теми же результатами. –

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