聚合、原生和子查詢

一.聚合查詢

1.使用 count()方法,可以求出所查詢數據的數量;
Db::name('user')->count();
2.count()可設置指定 id,比如有空值(Null)的 uid,不會計算數量;
Db::name('user')->count('uid');
3.使用 max()方法,求出所查詢數據字段的最大值;
Db::name('user')->max('price');
4.如果 max()方法,求出的值不是數值,則通過第二參數強制轉換;
Db::name('user')->max('price', false);
5.使用 min()方法,求出所查詢數據字段的最小值,也可以強制轉換;
Db::name('user')->min('price');
6.使用 avg()方法,求出所查詢數據字段的平均值;
Db::name('user')->avg('price');
7.使用 sum()方法,求出所查詢數據字段的總和;
Db::name('user')->sum('price');

二.子查詢

1.使用 fetchSql()方法,可以設置不執行 SQL,而返回 SQL 語句,默認 true;
Db::name('user')->fetchSql(true)->select();
2.使用 buidSql()方法,也是返回 SQL 語句,但不需要再執行 select(),且有括號;
Db::name('user')->buildSql(true);
3.結合以上方法,我們實現一個子查詢;
$subQuery= Db::name('two')->field('uid')->where('gender','男')->buildSql(true);
$result =Db::name('one')->where('id','exp','IN'.$subQuery)->select();
4. 使用閉包的方式執行子查詢;
$result = Db::name('one')->where('id','in', function ($query) {$query->name('two')->where('gender', '男')->field('uid');})->select();

三.原生查詢

1.使用 query()方法,進行原生 SQL 查詢,適用於讀取操作,SQL 錯誤返回 false;
Db::query('select * from tp_user');
2.使用 execute 方法,進行原生 SQL 更新寫入等,SQL 錯誤返回 false;
Db::execute('update tp_user set username="孫悟空" where id=29');
 
 
 
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章