0

以下のようなmysqlテーブルがあります。

ID名 firstDate secondDate
== ===== ========= ==========
A1 キャロル 2000-07-24 1956-07-24
A2 ビクター 2000-07-24 1980-01-13
A3 ポール 1999-12-10 1985-01-10
A4 ミア 2000-06-17 1945-10-22
A5 ルーク 2000-07-24 1960-03-19

次の形式でビューを作成する必要があります。

  1. firstDate列の昇順で並べ替えます。

  2. 2 つ以上のレコードのfirstDate列に同じ値がある場合、それらのレコードはsecondDate列を使用して、最初、2 番目などに配置されるレコードを決定します。

  3. ランクは、 secondDate列の後に連続番号で追加されます。

このような

id名 firstDate secondDate ランク
== ===== ========= ========== ====
A3 ポール 1999-12-10 1985-01-10 1
A4 ミア 2000-06-17 1945-10-22 2
A1 キャロル 2000-07-24 1956-07-24 3
A5 ルーク 2000-07-24 1960-03-19 4
A2 ビクター 2000-07-24 1980-01-13 5

なので

4

2 に答える 2

0

これを試して

    SET @rank := 0;
    SELECT * , @rank := @rank + 1 AS rank FROM
    (
    SELECT id , name  ,  firstDate  , secondDate
    from table1
     ORDER BY firstDate  asc, secondDate asc
    ) zz

デモはこちら

またはこれ

   SELECT * , @rank := @rank + 1 AS rank FROM
  (
  SELECT id , name  ,  firstDate  , secondDate
  from table1
   ORDER BY firstDate  asc, secondDate asc
   ) zz, (SELECT @rank := 0) z;

デモはこちら

于 2013-07-31T14:25:40.533 に答える