MySQL case when 使用


case when 自定義排序時的使用
根據 case when 新的 sort字段排序

    case 
    when t2.status = 4
    and t2.expire_time>UNIX_TIMESTAMP()
    and t2.expire_time<UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL 60 day)) then 4
        when `status` = 2  then 3
        when `status` = 3 then 2
        when t2.status = 4
        and t2.expire_time>UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL 60 day))
        and t2.expire_time<UNIX_TIMESTAMP(DATE_ADD(NOW(),INTERVAL 1 year)) then 1
    else 0
    end sort     
    
     $query->orderBy('sort desc ,t2.expire_time desc,t2.created_at desc');
    
  • 當colume 與condition 條件相等時結果為result
case colume 
    when condition then result
    when condition then result
    when condition then result
else result
end

image

  • 當滿足某一條件時,執行某一result

case  
    when condition then result
    when condition then result
    when condition then result
else result
end

image

  • 當滿足某一條件時,執行某一result,把該結果賦值到new_column_name 字段中
case  
    when condition then result
    when condition then result
    when condition then result
else result
end new_column_name

case when 用在select 語句中,新的字段new_column_name可以用來排序,但是不能用在where中

image
image
end 后面加as new_colume_name
image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2024 CODEPRJ.COM