2012-11-02 25 views
0

下面我有此查詢訂購升序內容:如何在數據庫字段(SQL)

SELECT q.QuestionId,GROUP_CONCAT(DISTINCT Answer SEPARATOR '') AS Answer 
    FROM Question q 
    INNER JOIN Answer an ON q.QuestionId = an.QuestionId 
    GROUP BY an.QuestionId 

現在,你可以在我的select語句看我有這個領域(DISTINCT Answer SEPARATOR '') AS Answer。現在,讓我們在輸出說它輸出下面這樣:

Answer 

ECB 
FDA 

我想要的答案按字母順序進行排序,從而顯示其象下面這樣:

Answer 

BCE 
ADF 

有誰知道我需要什麼爲了達到這個目的,在SQL中改變?

+0

1.請確認這是MySQL並重新標記問題。 2.「DISTINCT .. SEPARATOR」 - 所以你有一個GROUP_CONCAT的地方? 3.以別名替換列和順序,否則您將在原始列 – RichardTheKiwi

+0

@RichardTheKiwi上訂購我添加了mysql標籤幷包含我錯過的GROUP_CONCAT。你可以在第3點發表你的答案嗎?我在哪裏放置別名和我分組了什麼?我想在同一列內進行排序,而不是在多行和下面提到的xQbert之間 – user1789716

回答

0

閱讀文檔有時很有用。 MySQL的GROUP_CONCAT

SELECT q.QuestionId,GROUP_CONCAT(DISTINCT Answer 
            ORDER BY Answer 
            SEPARATOR '') AS Answer 
    FROM Question q 
    JOIN Answer an ON q.QuestionId = an.QuestionId 
GROUP BY an.QuestionId 

做看看使用的東西明智的作爲分隔符,而不是「」(無),否則你的答案得到一起搗碎。

1

你應該能夠

ORDER BY ANSWER 

添加到您的查詢來獲得期望的結果結束。

注意:您可能希望將該列別名爲COLLATED_ANSWER以避免混淆。

+1

我相信作者正在問如何在同一列內進行排序,而不是在多行之間進行排序。這個例子似乎表明了這一點。 – xQbert