mysqlパケットに行番号を付ける

2824 ワード

SELECT
                    case when @v <> _apply.PATIENT_ID then @r :=1 else @r :=@r + 1 end AS row_num_v_,
                    case when @v <> _apply.PATIENT_ID then @v := _apply.PATIENT_ID else @v end AS row_num_v,
                    _apply.ID,
                    _apply.MEDICAL_CARD_NO,
                    _apply.EXPERT_RESOURCE_ID,
                    _apply.PATIENT_ID,
                    _apply.DEPT_ID,
                    _apply.REG_DATE,
                    _apply.COMPANY_ID
                FROM
                    reg_apply _apply,
                    (SELECT @r := 0) b,
                    (SELECT @v := -1) bv
                ORDER BY
                    _apply.PATIENT_ID,
                    _apply.REG_DATE DESC

mysqlにrow_はありませんnumber()overは,曲線救国法を用いて解決できる.
1、グループ化するフィールドでソートします.
2、2つの変数を1つの@rを行番号とし、@vをグループ番号として定義します.次に、ビジネス・テーブルにこの2つのフィールドをリンクします.
3、caseグループ番号と現在のグループ化するフィールドを比較します.
4、上の2つのケースの位置を変えることができなくて、いいえ者は失効します
転載先:https://www.cnblogs.com/kongxianghao/p/7371674.html