Yii2.0 对的一些简单的操作

1: 此方法返回 ['name' => 'daxia'] 的所有数据;

User::find()->where(['name' => 'daxia'])->all();

2: 此方法返回 ['name' => 'daxia']的一条数据

User::find()->where(['name' => 'daxia'])->one();

3: 在条件name的基础上,额外添加另一个条件sex

User::find()->where(['name' => 'daxia'])->andWhere(['sex' => '女'])->one();

或者:

User::find()->where(['name' => 'daxia', 'sex' => '女'])->one();

说明: 这两种方法都是可以的

4: andFilterWhere/andWhere应用: 在[1427925600-1427968800]之间查询

User::find()->andFilterWhere(['between', 'regtime', '1427925600', '1427968800’])

说到andFilterWhere,下面我把用到的各种的情况示例列出:

1) : sql:   id=1 AND id=2
     条件:  ['and', 'id=1', 'id=2'] 

2) : sql:   id=1 OR id=2
     条件:  ['or', 'id=1', 'id=2'] 

3) : sql:   id BETWEEN 1 AND 10
     条件:   ['between', 'id', 1, 10] 

4) : sql:   id IN (1, 2, 3)
     条件:  ['in', 'id', [1, 2, 3]] 

5) : sql:   name LIKE '%tester%'     模糊查询
     条件:  ['like', 'name', 'tester']

6) : sql:   age>10
     条件:  ['>', 'age', 10]

5: orderBy() 应用

sql: ORDER BY `id` ASC, `name` DESC

Yii对应的model书写如下:
    $query->orderBy([
       'id' => SORT_ASC,  升序  默认
       'name' => SORT_DESC,  降序
    ]); 

6: groupBy() 应用:

sql:  ... GROUP BY `id`, `status`

Yii对应的model书写如下:

$query->groupBy(['id', 'status']);

7: having()应用:

sql:  ... HAVING `status` = 1

Yii对应的model书写如下:

$query->having(['status' => 1]);

8: limit() offset() 应用:

sql:  ... LIMIT 10 OFFSET 20

Yii对应的model书写如下

$query->limit(10)->offset(20);

9: 用自己书写的sql语句,去查询符合的数据

User::findBySql('SELECT * FROM user')->one();  此方法是用 sql  语句查询 user 表里面的一条数据;

User::findBySql('SELECT * FROM user')->all();  此方法是用 sql  语句查询 user 表里面的所有数据;

说明: 测试 - 你也许想要测试或者使用一个由 yii\db\Query 对象创建的 SQL 语句。 你可以使用以下的代码来达到目的:

$query->createCommand()->getRawSql();

下面就是官网上面展示的,一些比较常见的查询方法:

yii\db\Query 提供了一整套的用于不同查询目的的方法。
  ● yii\db\Query::all(): 将返回一个由行组成的数组,每一行是一个由名称和值构成的关联数组(译者注:省略键的数组称为索引数组)。
  ● yii\db\Query::one(): 返回结果集的第一行。
  ● yii\db\Query::column(): 返回结果集的第一列。
  ● yii\db\Query::scalar(): 返回结果集的第一行第一列的标量值。
  ● yii\db\Query::exists(): 返回一个表示该查询是否包结果集的值。
  ● yii\db\Query::count(): 返回 COUNT 查询的结果。
  ● 其它集合查询方法: 包括 yii\db\Query::sum(), yii\db\Query::average(), yii\db\Query::max(), yii\db\Query::min() 等. $q 是一个必选参数, 既可以是一个字段名称,又可以是一个 DB 表达式。
posted @ 2016-12-16 11:09  陈浩宇人呢  阅读(776)  评论(0编辑  收藏  举报