Yii2.0-advanced-10—数据库操作4(AR条件查询where)
来源:互联网 发布:手机定时器软件 编辑:程序博客网 时间:2024/06/08 17:40
条件查询
$customers = Customer::find()->where($cond)->all();
$cond就是我们所谓的条件,条件的写法也根据查询数据的不同存在差异,那么如何用yii2的方式来写查询条件呢?
[[简单条件]]
// SQL: (type = 1) AND (status = 2).$cond = ['type' => 1, 'status' => 2] // SQL:(id IN (1, 2, 3)) AND (status = 2)$cond = ['id' => [1, 2, 3], 'status' => 2] //SQL:status IS NULL$cond = ['status' => null]
[[and]]:将不同的条件组合在一起,用法举例:
//SQL:`id=1 AND id=2`$cond = ['and', 'id=1', 'id=2']//SQL:`type=1 AND (id=1 OR id=2)`$cond = ['and', 'type=1', ['or', 'id=1', 'id=2']]//SQL:`type=1 AND (id=1 OR id=2)` //此写法'='可以换成其他操作符,例:in like != >=等$cond = [ 'and', ['=', 'type', 1], [ 'or', ['=', 'id', '1'], ['=', 'id', '2'], ]]
[[or]]:
//SQL:`(type IN (7, 8, 9) OR (id IN (1, 2, 3)))`$cond = ['or', ['type' => [7, 8, 9]], ['id' => [1, 2, 3]]
[[not]]:
//SQL:`NOT (attribute IS NULL)`$cond = ['not', ['attribute' => null]]
[[between]]: not between 用法相同
//SQL:`id BETWEEN 1 AND 10`$cond = ['between', 'id', 1, 10]
[[in]]: not in 用法类似
//SQL:`id IN (1, 2, 3)`$cond = ['in', 'id', [1, 2, 3]] or $cond = ['id'=>[1, 2, 3]]//IN条件也适用于多字段$cond = ['in', ['id', 'name'], [['id' => 1, 'name' => 'foo'], ['id' => 2, 'name' => 'bar']]]//也适用于内嵌sql语句$cond = ['in', 'user_id', (new Query())->select('id')->from('users')->where(['active' => 1])]
[[like]]:
//SQL:`name LIKE '%tester%'`$cond = ['like', 'name', 'tester']//SQL:`name LIKE '%test%' AND name LIKE '%sample%'`$cond = ['like', 'name', ['test', 'sample']]//SQL:`name LIKE '%tester'`$cond = ['like', 'name', '%tester', false]
[[exists]]: not exists用法类似
//SQL:EXISTS (SELECT "id" FROM "users" WHERE "active"=1)$cond = ['exists', (new Query())->select('id')->from('users')->where(['active' => 1])]
此外,您可以指定任意运算符如下
//SQL:`id >= 10`$cond = ['>=', 'id', 10]//SQL:`id != 10`$cond = ['!=', 'id', 10]
1 0
- Yii2.0-advanced-10—数据库操作4(AR条件查询where)
- Yii2.0-advanced-10—数据库操作3(活动记录AR)
- Yii2.0-advanced-10—数据库操作2(查询构建器)
- Yii2.0-advanced-10—数据库操作6(事务)
- Yii2.0-advanced-10—数据库操作6(读写分离-数据库主从配置)
- Yii2.0-advanced-10—数据库操作1(原生sql)
- Yii2.0-advanced-10—数据库操作5(多数据库配置)
- Yii2.0-advanced-10—数据库操作6(读写分离)
- Yii2.0中文开发向导——查询条件Where全解析
- Yii2.0中文开发向导——查询条件Where全解析
- Yii2.0中文开发向导——查询条件Where全解析
- Yii2.0中文开发向导——查询条件Where全解析
- yii2查询条件Where全解析
- Yii2查询之where条件拼装
- yii2.0使用AR查询,将数据库时间戳格式化
- Yii2.0框架基础--数据查询之AR类方法where()
- yii2数据库查询操作
- Yii2-条件Where使用说明
- 长难句解析
- linux命令大全——网络通信(一)
- springMVC学习笔记(九) ---- 总结
- 群聊协议发送的真正的(Message、IQ、presence)等 xmpp(一)
- MVC框架模式总结
- Yii2.0-advanced-10—数据库操作4(AR条件查询where)
- 关于润乾自定义函数报错的问题
- 浅谈移动端自动化测试框架和工具
- java学习日记_95:IO流之字符流
- poj 3070 深入理解贪心的例题
- UVA 11354 Bond
- 欢迎使用Markdown编辑器写博客
- android.content.res.Resources$NotFoundException: String resource ID #0x0
- 技巧