### 傳參條件:
#### 一個參數
> 參數為字符時,直接拼入 SQL
> 參數為數組時,數組的每一項分別作為條件執行where 查詢(用法見本章節最后那個示例)
#### 二個參數
> 二個參數分別表示:字段名, 值
> 如: where('sex', '女')
> 等效SQL:WHERE sex = '女'
#### 三個參數
> 三個參數分別表示:字段名, 操作符,值
> 如:where('age', '>=', 18);
> 等效SQL: WHERE age >= 16
> 如:where('age', 'IN', [18,19,20]);
> 等效SQL: WHERE age IN (18,19,20)
>
> 操作符可選值:=/<>/!=/>/</>=/<=/between/not between/in/not in/like/not like
### 用法預覽
~~~
$table->where('username','Tom');
$table->where('username','like','Tom');
$table->where('age','=',18);
$table->where('age','>',18);
$table->where('age','between', [18, 30]);
$table->where('user_id','in', [1, 2, 3, 4]);
$table->where('username LIKE \'Tom\'');
$table->where('username LIKE ?', ['Tom']);
$table->where('(')->where('username','like','Tom')->where('OR')->where('age','>',18)->where(')');
$table->where([
['username','Tom'],
'OR',
['age','>',18],
]); // 最終SQL: WHERE (username='Tom' OR age>18)
~~~
### 代碼示例:
#### 按某個字段的指定值查詢
~~~
$tableUser = Be::getTable('system_user');
$tableUser->where('sex', '女');
$users = $tableUser->getObjects();
~~~
等效SQL:
~~~
SELECT * FROM user WHERE sex = '女'
~~~
#### 按某個字段的指定范圍查詢
~~~
$tableUser = Be::getTable('system_user');
$tableUser->where('age', '>=', 18);
$users = $tableUser->getObjects();
~~~
等效SQL:
~~~
SELECT * FROM user WHERE age >= 18
~~~
#### 多個條件
~~~
$tableUser = Be::getTable('system_user');
$tableUser->where('sex', '女');
$tableUser->where('age', '>=', 18);
$users = $tableUser->getObjects();
~~~
等效SQL:
~~~
SELECT * FROM user WHERE sex = '女' AND age >= 18
~~~
#### 連貫操作
~~~
$users = Be::getTable('system_user')
->where('sex', '女')
->where('age', '>=', 18)
->getObjects();
~~~
#### 字段控制
~~~
$users = Be::getTable('system_user')
->where('sex', '女')
->getObjects('id, name, sex');
~~~
等效SQL:
~~~
SELECT id, name, sex FROM user WHERE sex = '女'
~~~
#### 復雜條件:
~~~
$users = Be::getTable('system_user')
->where('(')
->where('sex', '女')
->where('AND')
->where('age', '>=', 18)
->where(')')
->where('OR')
->where('sex', '男')
->getObjects();
~~~
等效SQL:
~~~
SELECT * FROM user WHERE (sex = '女' AND age >= 18) OR sex = '男'
~~~
#### 數組形式的多維 where 條件
~~~
$where = [
'(',
['sex', '女'],
'AND',
['age', '>=', 18],
')',
'OR',
['sex', '男']
];
$users = Be::getTable('system_user')
->where($where)
->getObjects();
~~~
等效于上例中的復雜條件查詢
- 系統介紹
- 安裝
- 核心工廠(Be)
- 數據庫(Db)
- 配置文件
- 連接多個庫
- 獲取多條記錄
- 對象數組(getObjects)
- 二維數組(getArrays)
- 一維數組形式(getValues)
- 獲取帶索引的多條記錄
- 對象數組(getKeyObjects)
- 二維數組(getKeyArrays)
- 鍵值對(getKeyValues)
- 獲取迭代器形式的多條記錄
- 對象數組(getYieldObjects)
- 二維數組(getYieldArrays)
- 單列數組(getYieldValues)
- 獲取單條記錄
- 對象形式(getObject)
- 數組形式(getArray)
- 單個值(getValue)
- 插入/更新/替換
- 插入(insert)
- 批量插入(insertMany)
- 更新(update)
- 批量更新(updateMany)
- 替換(replace)
- 批量替換(replaceMany)
- 快速處理(quick***)
- 其它
- 防注入
- 執行SQL
- 事務/異常處理
- 表模型(Table)
- 條件查詢(where)
- 獲取多條記錄
- 對象數組(getObjects)
- 二維數組(getArrays)
- 獲取帶索引的多條記錄
- 對象數組(getKeyObjects)
- 獲取迭代器形式的多條記錄
- 聯表查詢
- 左連接(leftJoin)
- 右連接(rightJoin)
- 內連接(innerJoin)
- 聚合
- 求和(sum)
- 匯總(count)
- 最小值(min)
- 最大值(max)
- 平均值(avg)
- 其它
- 行模型(Tuple)
- 緩存(Cache)
- 配置文件
- 如何使用
- 會話(Session)
- 配置文件
- 如何使用
- Cookie
- 主題、模板
- 主題/模板結構
- 模板繼承
- 模板包含
- 注解
- 配置文件
- 配置項驅動:整型
- 配置項驅動:字符
- 控制器權限
- 擴展(Plugin)