一、update方法總結數據庫
/** * 設置記錄的某個字段值 * 支持使用數據庫字段和方法 * @access public * @param string|array $field 字段名 * @param mixed $value 字段值 * @return integer */ function setField($field, $value = ''){};
//設置某個字段的值,適用場景:適用於用戶積分清零、餘額清零等相似操做 Db::name('table')->where('id',1)->setField('field',0);
/** * 字段值(延遲)增加 * @access public * @param string $field 字段名 * @param integer $step 增加值 * @param integer $lazyTime 延時時間(s) * @return integer|true * @throws Exception */ public function setInc($field, $step = 1, $lazyTime = 0){};
//自增某個字段的值,參數2不傳時默認爲自增1,適用場景:適用於用戶積分增長、餘額增長等相似操做,須要延時更新則傳入第三個參數(單位秒), Db::name('table')->where('id',1)->setInc('field',2);
/** * 字段值(延遲)減小 * @access public * @param string $field 字段名 * @param integer $step 減小值 * @param integer $lazyTime 延時時間(s) * @return integer|true * @throws Exception */ public function setDec($field, $step = 1, $lazyTime = 0){};
//自減某個字段的值,參數2不傳時默認爲自減1,適用場景:適用於用戶積分扣除、餘額扣除等相似操做,須要延時更新則傳入第三個參數(單位秒), Db::name('table')->where('id',1)->setDec('field',2);
/** * 使用表達式設置數據 * @access public * @param mixed $value 表達式 * @return Expression */ public function raw($value){};
//自增或自減多個字段的值,raw方法內支持SQL函數,適用場景:適用於同時更新用戶累計餘額、當前餘額等相似操做 Db::name('table')->where('id',1)->update([ 'total_remain' => Db::raw("total_remain+100"), 'remain' => Db::raw("remain+100"), ]);
二、select方法總結數組
/** * 獲得某個字段的值 * @access public * @param string $field 字段名 * @param mixed $default 默認值 * @param bool $force 強制轉爲數字類型 * @return mixed */ public function value($field, $default = null, $force = false){}; //查詢某個字段的值,參數1支持SQL函數,適用場景:適用於獲取用戶餘額、積分、名稱等相似操做 Db::name('table')->where('id',1)->value('field'); //參數1爲SQL函數時,以下、至關於使用TP5聚合查詢 Db::name('table')->where('id',1)->value('COUNT(*) as count')['count']; //統計符合查詢條件數據的行數 Db::name('table')->where('id',1)->value('MAX(field) as max')['max']; //獲取符合查詢條件數據的最大值 Db::name('table')->where('id',1)->value('MIN(field) as min')['min']; //獲取符合查詢條件數據的最小值 Db::name('table')->where('id',1)->value('AVG(field) as avg')['avg']; //獲取符合查詢條件數據的平均值 Db::name('table')->where('id',1)->value('SUM(field) as sum')['sum']; //獲取符合查詢條件數據的總和值
/** * 獲得某個列的數組 * @access public * @param string $field 字段名 多個字段用逗號分隔 * @param string $key 索引 * @return array */ public function column($field, $key = ''){}; //查詢某一列的值,適用場景:適用於獲取關聯訂單商品ID、用戶全部店鋪ID、獲取班級全部學生姓名等相似操做 Db::name('table')->where('order_id',1)->column('field');
/** * COUNT查詢 * @access public * @param string $field 字段名 * @return integer|string */ public function count($field = '*'){}; //統計符合查詢條件數據的行數,適用場景:適用於獲取用戶未讀消息數量等相似操做 Db::name('table')->where('status',1)->count();
/** * SUM查詢 * @access public * @param string $field 字段名 * @return float|int */ public function sum($field){}; //獲取符合查詢條件數據的總和值,適用場景:適用於獲取用戶總支出、總收入金額等相似操做 Db::name('table')->where('pay_type',1)->sum();
/** * MIN查詢 * @access public * @param string $field 字段名 * @param bool $force 強制轉爲數字類型 * @return mixed */ public function min($field, $force = true){}; //獲取符合查詢條件數據的最小值,適用場景:適用於獲取積分排名最後的用戶等相似操做 Db::name('table')->where('status',1)->min();
/** * MAX查詢 * @access public * @param string $field 字段名 * @param bool $force 強制轉爲數字類型 * @return mixed */ public function max($field, $force = true){};
//獲取符合查詢條件數據的最大值,適用場景:適用於獲取積分排名第一的用戶等相似操做 Db::name('table')->where('status',1)->max();
/** * AVG查詢 * @access public * @param string $field 字段名 * @return float|int */ public function avg($field){}; //獲取符合查詢條件數據的平均值,適用場景:適用於班級平均分等相似操做 Db::name('table')->where('status',1)->avg();
三、insert方法總結函數
$insert = [ ['order_id' => 1, 'goods_id' => 1, 'attr_id' => 1], ['order_id' => 1, 'goods_id' => 1, 'attr_id' => 1], ['order_id' => 1, 'goods_id' => 1, 'attr_id' => 1] ]; //插入多條數據,適用場景:適用於用戶購買商品記錄訂單商品信息等相似操做 Db::name('table')->insertAll($insert); $insert = ['order_id' => 1, 'goods_id' => 1, 'attr_id' => 1]; //插入一條數據並返回自增列值,適用場景:適用於用戶購買商品生成訂單後記錄訂單關聯信息時獲取生成訂單的自增ID等相似操做 Db::name('table')->insertGetId($insert);
四、鏈式查詢spa
//往分頁查詢的結果集內添加數據,適用於須要使用關聯表查詢到的數據再作另外的查詢並存入數據集 $model->where('o.status<>6')->order('id desc')->paginate()->each( function ( $item ){ $service_ids = Db::name('order_service')->where('order_id',$item['id'])->column('service_id'); $service_names = Db::name('service')->where('id','in',$service_ids)->column('name'); $item['service_names'] = implode(',',$service_names); return $item; } );
//獲取分頁查詢結果集內的所有數據,適用於須要使用分頁數據內的某些數據再作另外的查詢 $list = $model->where('o.status', 0) ->where('o.pay_status', 0) ->order('o.id desc') ->paginate(); //分頁查詢
$data = $list->toArray(); //獲取分頁查詢結果集合並將結果集合轉換爲數組(包含分頁信息)