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

      

    每天进步一点点
  • 相关阅读:
    SpringMVC之@RequestParam @RequestBody @RequestHeader 等详解
    RabbitMQ基础介绍
    linux查看tomcat日志
    HTML-01
    Ajax和json
    使用VBScript实现设置系统环境变量的小程序
    WinForm中重绘TabControl选项卡标题
    Action向视图传值的6种方式
    C#中常用的系统内置委托
    C#中的扩展方法
  • 原文地址:https://www.cnblogs.com/skyEva/p/15590169.html
Copyright © 2011-2022 走看看