- 熟悉Yii2的查询条件后,用Active Record查询数据非常方便。
- 以下我们介绍where()方法当中,条件的拼装方式。
-
- #某个值为null,会用IS NULL来生成语句:
- ['type' => 1, 'status' => 2]
- ['id' => [1, 2, 3], 'status' => 2]
- ['status' => null]
- ['NOT', ['type' => null]]
-
- #对比
- ['>', 'id', 1]
- ['<', 'id', 100]
- ['=', 'id', 10]
- ['>=', 'id', 1]
- ['<=', 'id', 100]
- ['!=', 'id', 10]
-
- ['and', 'id' => 1, 'id' => 2]
- ['and', 'id=1', 'id=2']
- ['and', 'type=1', ['or', 'id=1', 'id=2']]
-
- ['or', ['type' => [7, 8, 9]], ['id' => [1, 2, 3]]]
-
- ['not', ['attribute' => null]]
-
- ['between', 'id', 1, 10]
- ['not between', 'id', 1, 10]
-
- ['in', 'id', [1, 2, 3]]
- ['id' => [4, 8, 15]]
- ['not in', 'id', [1, 2, 3]]
-
- ['in', ['id', 'name'], [['id' => 1, 'name' => 'foo'], ['id' => 2, 'name' => 'bar']]]
-
- #用子查询作为IN条件的值,如下:
- ['in', 'user_id', (new Query())->select('id')->from('users')->where(['active' => 1])]
-
- ['like', 'name', 'tester']
- ['like', 'name', ['test', 'sample']]
- ['like', 'name', '%tester', false]
-
- ['or like', 'name', ['test', 'sample']]
- ['not like', 'name', 'tester']
- ['or not like', 'name', ['test', 'sample']]
-
- ['exists', (new Query())->select('id')->from('users')->where(['active' => 1])]
posted @
2018-03-22 16:43
(BACH)
阅读(
464)
评论()
编辑
收藏
举报