顯示的資料表內容
$student=
"select  redo_date
,case when course2__redos.redo_time=1 then'上午' 
      when course2__redos.redo_time=2 then '下午' 
      else null END as redo_time
,case when course2__redos.redo_admission_state=1 then'路跑$s'
      when course2__redos.redo_admission_state=0 then '游泳$s'
      else null END as redo_admission_state
,case when course2__courses.c_place=null then'缺席' 
      else c_place END as c_place
         from course2__redos
         left join course2__choices
         on  course2__redos.redo_place = course2__choices.ch_id
         left join course2__courses
         on course2__choices.ch_c_id =  course2__courses.c_id 
         where redo_stuid='$redo_stuid' ";

目的是想讓$s抓取順序的數字,讓資料能顯示這筆資料是第幾筆資料.....
'路跑$s'和'游泳$s'能
EX:路跑1(路跑第一位)、路跑2(路跑第二位)、....、游泳1(游泳第一位)
php必須顯示出第一位申請 第二位申請等
算出照同一天(redo_date)(日期)
的同一時段(redo_time)(1=上午、2=下午)
同一類行申請的(redo_admission_state)(1=路跑、0=游泳)
第$s位
依redo_admission(申請時間)排出先後順序
想不通該怎樣能讓$s顯示順位....
應該說要怎麼在條件上同時指定三個欄位相同的資料......
如果只有一個欄位還好...三個不知道怎麼設定
設定完還的設定$s抓資料順位的排位數字...
Schema (MySQL v8.0)
CREATE TABLE redo_table
(
	redo_date VARCHAR(10),
	redo_time CHAR,
	redo_admission_state CHAR,
  	redo_admission VARCHAR(19)
);
INSERT INTO redo_table VALUES('2020-04-01','1','0','2020-04-01 02:00:00');
INSERT INTO redo_table VALUES('2020-04-01','1','0','2020-04-01 01:00:00');
INSERT INTO redo_table VALUES('2020-04-01','1','1','2020-04-01 03:00:00');
INSERT INTO redo_table VALUES('2020-04-01','1','1','2020-04-01 02:00:00');
INSERT INTO redo_table VALUES('2020-04-01','1','1','2020-04-01 01:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','0','2020-04-01 05:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','0','2020-04-01 04:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','0','2020-04-01 03:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','0','2020-04-01 02:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','0','2020-04-01 01:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','1','2020-04-01 06:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','1','2020-04-01 05:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','1','2020-04-01 04:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','1','2020-04-01 03:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','1','2020-04-01 02:00:00');
INSERT INTO redo_table VALUES('2020-04-02','1','1','2020-04-01 01:00:00');
Query #1
SELECT
	redo_date,
    redo_time,
    redo_admission_state,
    redo_admission,
    RANK() OVER (
      	PARTITION BY redo_date, redo_time, redo_admission_state
    	ORDER BY redo_admission
    ) therank
	from redo_table;
| redo_date | redo_time | redo_admission_state | redo_admission | therank | 
|---|---|---|---|---|
| 2020-04-01 | 1 | 0 | 2020-04-01 01:00:00 | 1 | 
| 2020-04-01 | 1 | 0 | 2020-04-01 02:00:00 | 2 | 
| 2020-04-01 | 1 | 1 | 2020-04-01 01:00:00 | 1 | 
| 2020-04-01 | 1 | 1 | 2020-04-01 02:00:00 | 2 | 
| 2020-04-01 | 1 | 1 | 2020-04-01 03:00:00 | 3 | 
| 2020-04-02 | 1 | 0 | 2020-04-01 01:00:00 | 1 | 
| 2020-04-02 | 1 | 0 | 2020-04-01 02:00:00 | 2 | 
| 2020-04-02 | 1 | 0 | 2020-04-01 03:00:00 | 3 | 
| 2020-04-02 | 1 | 0 | 2020-04-01 04:00:00 | 4 | 
| 2020-04-02 | 1 | 0 | 2020-04-01 05:00:00 | 5 | 
| 2020-04-02 | 1 | 1 | 2020-04-01 01:00:00 | 1 | 
| 2020-04-02 | 1 | 1 | 2020-04-01 02:00:00 | 2 | 
| 2020-04-02 | 1 | 1 | 2020-04-01 03:00:00 | 3 | 
| 2020-04-02 | 1 | 1 | 2020-04-01 04:00:00 | 4 | 
| 2020-04-02 | 1 | 1 | 2020-04-01 05:00:00 | 5 | 
| 2020-04-02 | 1 | 1 | 2020-04-01 06:00:00 | 6 | 
另外說一下
這不叫排序(ORDER BY, 依考試分數由大排到小)
這叫排名(RANK BY, 依考試分數決定的名次)