## 查询条件
DbModel支持使用链式调用来组装where子句的查询条件,并实现参数化查询和值绑定。
~~~
DbModel::where($field, $operator = null, $value = null)
DbModel::andWhere($field, $operator = null, $value = null)
DbModel::orWhere($field, $operator = null, $value = null)
~~~
参数表:
| 参数名称 | 必选 | 类型 | 说明 |
| --- | --- | --- | --- |
| field | 是 | string | 字段名 |
| operator | 否 | string | 比较关键字 |
| value | 否 | string,int,array | 比较值, operator为 in 或 not in 时, value必须为数组 |
* 当operator为“=”时,可省略此参数。
* operator可以是“=”、“>”、“>=”、“<”、“<=”、“in”,“not in”, “like”等比较符。
* 当比较符为 in 或 not in 时,value必须为数组,形如[1, 2, 3]
用例:
~~~
/**
* 模糊搜索获取多行数据
*
* @return array
*/
public function testGetRowsByLike()
{
$fields = '*';
$query = $this->where('id', '>', 5)
->andWhere('id', '<', 20)
->andWhere('name', 'like', '%杨%');
return $query->getRows($fields);
}
/**
* 根据字段值列表获取多行数据
*
* @return array
*/
public function testGetRowsByNames()
{
$fields = '*';
$rows = $this->where('id', '>', 5)
->andWhere('id', '<', 20)
->andWhere('name', 'in', ['杨文杰', '张三'])
->getRows($fields);
return $rows;
}
/**
* 满足查询条件的数据行数
*
* @return int
*/
public function testGetCount()
{
$count = $this->where('name', '杨文杰')
->andWhere('id', '<=', 15)
->getCount();
return $count;
}
~~~