# 查詢構造器
[TOC]
#### 從數據表中取得所有的數據列
```
Db::table('user')->get();
```
#### 取得指定的字段
```
Db::table('user')->get(['username','age']);
```
#### 從數據表中取得單一數據列
```
Db::table('user')->where('username','向軍')->first();
//取出指定主鍵的值
Db::table('user')->first(2);
```
#### 從數據表中取得單一數據列的單一字段
```
Db::table('user')->where('username', '向軍')->pluck('username');
//返回第一條記錄的 username 字段值
```
#### 取得單一字段值的列表
```
Db::table('user')->lists('username');
//滿足條件記錄的所有username字段
[
[0] => admin
[1] => hdxj
]
```
#### 返回一維數組,第一個字段做為鍵名使用,第 2 個字段做為鍵值
```
Db::table('user')->lists('id,username');
//id 字段做為鍵名使用
[
[1] => admin
[2] => hdxj
]
```
#### 多個字段返回二維數組,第一個字段值做為鍵名使用,其余字段做為鍵值
```
Db::table('user')->lists('id,username,age');
//返回值如下
[
[1] => [
[id] => 1
[username] => admin
[age] => 22
]
[2] => [
[id] => 2
[username] => hdxj
[age] => 67
]
]
```
#### like模糊查詢
第三個參數為null時,查詢忽略
```
Db::table( 'rule' )->where( 'name','like', "%后盾人%" )->get()
```
#### 指定查詢結果字段
```
Db::table('user')->field('username AS name,age')->get();
或
Db::table('user')->field(['username','age'])->get();
```
#### 根據某個字段查詢
```
Db::table('user')->getByName("hdphp");
//返回一條記錄
```
#### 增加查詢子句到現有的查詢中
```
$db = Db::table('user')->field('username AS name','age','id');
$db->where('id','>',2)->get();
```
#### 使用 where 及運算符
第二個參數為null時,查詢忽略
```
Db::table('user')->where('id','>',1)->get();
Db::table('user')->where('id','>',1)->where('id','<',10)->get();
```
#### where以數組形式傳參
```
$where=[
['id','>',3],
['status',0]
];
Db::table('user')->where($where)->get();
```
#### whereNotEmpty內容為空時不設置
當查詢參數為空時忽略本次條件設置,以下代碼的where條件不會添加到SQL中。
```
Db::table('user')->whereNotEmpty('username','')->get();
```
#### 使用andwhere
```
Db::table('user')->where('id','>',1)->andwhere('id','<',10)->get();
```
#### 使用orwhere
```
Db::table('user')->where('id','>',1)->orwhere('id','<',10)->get();
```
#### 使用 logic 條件連接符
```
Db::table('user')->where('id','>',1)->logic('or')->where('id','<',22)->get();
```
#### 預準備whereRaw
```
Db::table('user')->whereRaw('age > ? and username =?', [1,'admin'])->get();
```
#### 使用 whereBetween
```
Db::table('user')->whereBetween('id',[10,30])->get();
```
#### 使用 WhereNotBetween
```
Db::table('user')->whereNotBetween('id',[10,30])->get();
```
#### 使用 WhereIn
```
Db::table('user')->whereIn('id',[2,3,9])->get();
```
#### 使用 WhereNotIn
```
Db::table('user')->whereNotIn('id',[3,5,6])->get();
```
#### 使用 WhereNull
```
Db::table('user')->whereNull('username')->get();
```
#### 使用 WhereNotNull
```
Db::table('user')->whereNotNull('id')->get();
```
#### 指定條件關系
```
Db::table('user')->where('id','>',1)->logic('AND')->whereBetween('id',[1,10])->get();
```
#### 排序(Order By)
```
Db::table('user')->orderBy('id','DESC')->get();
Db::table('user')->orderBy('id','DESC')->orderBy('rank','ASC')->get();
//多個排序條件
```
#### 分組GROUP BY
```
Db::table('user')->groupBy('age')->get();
```
#### 分組篩選HAVING
```
Db::table('user')->groupBy('age')->having('count(sex)','>',2)->get();
```
#### 取部分數據LIMIT
```
Db::table('user')->limit(2)->get();
Db::table('user')->limit(2,5)->get();
```
## 聚合
#### max
~~~
Db::table("user")->max('id');
~~~
#### min
~~~
Db::table("user")->min('id');
~~~
#### avg
~~~
Db::table("user")->avg('id');
~~~
#### sum
~~~
Db::table("user")->sum('id');
~~~
## JOIN多表關聯
#### 多表關聯INNER JOIN
```
Db::table('user')
->join('class','user.cid','=','class.cid')
->join('contacts','user.id','=','contacts.uid')
->get()
```
#### 多表關聯LEFT JOIN
```
Db::table('user')->leftJoin('class','user.cid','=','class.cid')->get();
```
#### 多表關聯RIGHT JOIN
```
Db::table('user')->rightJoin('class','user.cid','=','class.cid')->get();
```
- 文檔已經遷移到后盾人
- 介紹
- 框架特性
- 開發規范
- 許可協議
- 作者向軍
- 安裝框架
- 更新框架
- 基礎
- 入口文件
- 應用配置
- 優雅鏈接
- 目錄結構
- 系統常量
- 自動加載
- 應用密鑰
- 系統函數
- CSRF保護
- 依賴注入
- 跨域訪問
- 配置
- 配置文件
- 基本功能
- 擴展配置
- c 函數
- 控制器
- 定義聲明
- 基本使用
- 相關函數
- 響應消息
- 路由
- 基礎知識
- 基礎路由
- 路由參數
- 參數檢測
- 依賴注入
- 控制器
- 分組路由
- RESTful
- 別名路由
- 數據
- 配置相關
- 核心操作
- 查詢構造器
- 日志記錄
- 分頁處理
- 事務處理
- 函數相關
- 數據庫
- 數據遷移
- 數據填充
- 模型
- 定義模型
- 模型動作
- 模型驗證
- 自動完成
- 自動過濾
- 字段保護
- 數據填充
- 多表關聯
- 分頁處理
- 倉庫
- 數據倉庫
- 查詢規則
- 視圖
- 基礎知識
- 模板配置
- 模板文件
- 分配數據
- 系統標簽
- 擴展標簽
- 緩存模板
- 模板繼承
- 視圖函數
- widget
- vue組件
- 中間件
- 中間件
- 緩存
- 基本操作
- 文件緩存
- 數據表緩存
- 服務
- 服務容器
- 定制服務
- 相關函數
- 請求
- 基本使用
- 請求擴展
- 測試
- 基礎知識
- 基本使用
- HTTP測試
- 調試
- 調試模式
- 日志管理
- 組件
- 多語言
- 響應處理
- Cookie
- Session
- 驗證碼
- XML
- 自動驗證
- 文件處理
- 壓縮解壓
- RBAC
- 數組增強
- 分頁管理
- 圖像處理
- 生成靜態
- 加密解密
- 字符串
- 數據集合
- 工具服務
- 目錄操作
- 郵件發送
- CURL
- QQ登錄
- 數據備份
- 購物車
- 日志處理
- 命令組件
- 二維碼
- 后盾云
- 日期處理
- 阿里
- 支付寶
- 阿里云直播
- 阿里云短信
- 阿里云郵件
- 阿里云OSS
- SOCKET
- 啟動與關閉
- 前端
- 微信