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
- 當滿足某一條件時,執行某一result
case
when condition then result
when condition then result
when condition then result
else result
end
- 當滿足某一條件時,執行某一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中
end 后面加as new_colume_name