数据库的order表中的两个字段为:
status 状态(取值 :0 表示 未派送;1 表示 派送中;2 表示 已收货)
finished 结束时间(默认值为 “0000-00-00 00:00:00”)
接口需求:取 order 表中 id 大于10的所有订单列表
要求:
1、如果finished为默认值(”0000-00-00 00:00:00”),则替换为空字符串 “”,否则显示finished的值;
2、对应好status状态的提示信息;
关键代码:
$list = M('order')
->where('id>10')
->field('id,IF(finished="0000-00-00 00:00:00","",finished) as r_finished,CASE status WHEN 0 THEN "未派送" WHEN 1 THEN "派送中" WHEN 2 "已收货" ELSE "未知状态" END as r_status')
->select();
1
2
3
4
解释:
1、IF(finished=”0000-00-00 00:00:00”,”“,finished) as r_finished
//用IF判断 finished是否默值并替换空字符串,字段存储为 r_finished;
2、CASE status WHEN 0 THEN “未派送” WHEN 1 THEN “派送中” WHEN 2 “已收货” ELSE “未知状态” END as r_status
//选择并替换status 的数值 为汉字提示 ,字段存储为 r_status
————————————————