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

      

    每天进步一点点
  • 相关阅读:
    .net 文件夹是否存在的判断
    Lock Statement And Thread Synchronization
    如何利用EnteLib Unity Interception Extension 和PIAB实现Transaction
    OSQL 命令行工具
    How to build tab sets whitch headers display at bottom in WPF?
    Monitoring Clipboard Activity in C#
    产品经理讲座的感悟
    图说
    解决技术问题的9点建议
    为啥要整理需求?
  • 原文地址:https://www.cnblogs.com/skyEva/p/15590169.html
Copyright © 2011-2022 走看看