zoukankan      html  css  js  c++  java
  • MySQL排序SQL漏洞,必看!!!踩坑无数次了

    参数排序方法,只能作用于临时表,不能作用于join的结果。不然报错!!!   

    正确用法如下:

       set @p = null; set @r = 0;

        select record_id,doctor_name,doctor_guid, rank,create_date
        from
        ( 
                   SELECT
                      s.*,
                      if(@p=s.record_id,@r:=@r+1,@r:=1) as rank,
                     @p:=s.record_id
                  from
                (
                       select a.record_id,a.doctor_name,a.doctor_guid,create_date,a.id
                       from hmcdss2.mt_patient_record_doctor a
                       join rp_update_gc_patient_info b on a.record_id=b.record_id
                       where doctor_type = 4 and source_type=1
                )s
                 order by s.record_id,s.id desc
       ) t
      where rank = 1

    错误用法:

       set @p = null; set @r = 0;

       select
       record_id, doctor_name, doctor_guid
       from

       (

        select

                a.record_id,a.doctor_name,a.doctor_guid,
                if(@p=a.record_id,@r:=@r+1,@r:=1) as rank,
               @p:=a.record_id
         from hmcdss2.mt_patient_record_doctor a
         join rp_update_gc_patient_info b on a.record_id=b.record_id
        where doctor_type = 2
        order by a.record_id,create_date desc
       ) t

       where rank = 1

      

    每天进步一点点
  • 相关阅读:
    北京之行
    csharp进界
    医院OA系统新思考
    茗洋博客
    monkey主要参数详解
    使用python判断Android自动化的渠道包是否全部打完
    手机连接mac电脑无法使用adb命令解决方法
    Python正则表达式指南
    Mac基本命令大全
    Mac之vim普通命令使用
  • 原文地址:https://www.cnblogs.com/skyEva/p/15590169.html
Copyright © 2011-2022 走看看