1

私は3つのフィールドを持つテーブルを持っています、例えば:

roll varchar(100)

marks int (10) // can be 0 5 or 10

time anyTimeFormat

//time stores the time of passing the exam. 

私がしなければならないことは、私ができる昇順、完了時間でソートすることです。

ORDER by time ASC

ただし、昇順で並べ替えると同時に、スコアに基づいてレコードをグループ化する必要があります。つまり、スコアが10で、最初に完了したレコードなどです。

GROUP BYを試しましたが、機能しないことがわかっています。これに関するどんな助けも歓迎します。

注:私はmysqlを使用しています。PHPはフロントエンドです。

サンプルデータ

roll        marks        time

1             10          2012-09-07 15:03:39
2             10          2012-09-07 15:03:42
3             10          2012-09-07 15:03:17
4             10          2012-09-07 15:03:20
5              5          2012-09-07 15:03:11

期待される出力::

// I want those with 10 marks to be displayed first.

roll        marks        time

1             10          2012-09-07 15:03:17
2             10          2012-09-07 15:03:20
3             10          2012-09-07 15:03:39
4             10          2012-09-07 15:03:42
5              5          2012-09-07 15:03:11
4

1 に答える 1

4

使用する:

ORDER BY marks DESC, time ASC

つまり、最初に最高のマークが必要なためにマークで並べ替え、次に同等のマークの場合は、最初の完了者を最初に表示するために時間で並べ替えます。

于 2012-09-15T13:26:50.707 に答える