1、查找订单详情中订单id为238的订单,在规格表中对应到此规格库存stock减去订单详情中的num
$id = 238; $array = [ 'gs.stock' => Db::raw('gs.stock - gd.num'), ]; $goodsspec = Db::name('goodsspec gs')->join('goodsorderdetail gd','gs.id = gd.spec_id')->where('gd.gd_id',$id)->strict(false)->update($array);
2、根据订单表的id减少user表的总数量,增加coupon表的使用数量,修改couponrecord表的is_used字段(注意所有表join必须是一条记录不能多条)
// 处理现金券的各个字段 $updateArr = [ 'cr.is_used' => 1, 'co.use_num' => Db::raw('co.use_num+1'), 'u.coupon_num' => Db::raw('u.coupon_num-1'), ]; Db::name('subscribe su')->join('couponrecord cr','su.coupon_id = cr.id')->join('coupon co','co.id = cr.coupon_id')->join('user u','u.id = su.user_id')->where('su.id',$id)->update($updateArr);
3、把数据表中某个字段加密为base64_encode,用于过滤emoji表情
$re2 = Db::name('goodsorder')->where('1=1')->exp('note','TO_BASE64(note)')->update();
4、把数据表中某个字段解码为base64_decode,用于过滤emoji表情
$re2 = Db::name('goodsorder')->where('1=1')->exp('note','FROM_BASE64(note)')->update();