0

私は以下にこのクエリを持っています:

   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

Answersをアルファベット順に並べて、次のように表示したいと思います。

Answer

BCE
ADF

これを達成するためにSQLで何を変更する必要があるか誰かが知っていますか?

4

2 に答える 2

1

追加できるはずです

ORDER BY ANSWER

クエリの最後まで移動して、目的の結果を取得します。

注:混乱を避けるために、列のエイリアスをCOLLATED_ANSWERなどに変更することをお勧めします。

于 2012-11-02T01:48:27.117 に答える
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

''(何もない)ではなく、SEPARATORとして賢明なものを使用することを検討してください。そうしないと、答えがまとまってしまいます。

于 2012-11-02T02:36:59.717 に答える