小伙儿 2014-08-21 14:01:34 180686次浏览 33条评论 246 86 1

下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作

User::find()->all();    此方法返回所有数据;

User::findOne($id);   此方法返回 主键 id=1  的一条数据(举个例子); 

User::find()->where(['name' => '小伙儿'])->one();   此方法返回 ['name' => '小伙儿'] 的一条数据;

User::find()->where(['name' => '小伙儿'])->all();   此方法返回 ['name' => '小伙儿'] 的所有数据;

User::find()->orderBy('id DESC')->all();   此方法是排序查询;

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

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

User::find()->andWhere(['sex' => '男', 'age' => '24'])->count('id');   统计符合条件的总条数;

User::find()->andFilterWhere(['like', 'name', '小伙儿']); 此方法是用 like 查询 name 等于 小伙儿的 数据

User::find()->one();    此方法返回一条数据;

User::find()->all();    此方法返回所有数据;

User::find()->count();    此方法返回记录的数量;

User::find()->average();    此方法返回指定列的平均值;

User::find()->min();    此方法返回指定列的最小值 ;

User::find()->max();    此方法返回指定列的最大值 ;

User::find()->scalar();    此方法返回值的第一行第一列的查询结果;

User::find()->column();    此方法返回查询结果中的第一列的值;

User::find()->exists();    此方法返回一个值指示是否包含查询结果的数据行;

User::find()->batch(10);  每次取 10 条数据 

User::find()->each(10);  每次取 10 条数据, 迭代查询

Yii 为我们提供了非常丰富的查询,在这里小伙儿不一一列举了,下面是 api 链接,预知更多,请点击观看(点击 db 菜单即可)
Yii 查询数据库

觉得很赞
  • 评论于 2016-02-29 11:14 举报

    可是 where 里 大于小于怎么表示? ->where(['le'=>'>0']) 无效

  • 评论于 2016-02-29 11:14 举报

    可是 where 里 大于小于怎么表示? ->where(['le'=>'>0']) 无效

  • 评论于 2016-03-04 16:28 举报

    请问楼主,我直接用$model->save();方法为什么执行的是插入,而不是更新呢?save之前为什么不能放where,表示跟thinkphp有很大的不一样,有点不明白。

    1 条回复
    评论于 2017-05-22 14:44 回复

    既然是save是插入一条数据,那么你的where条件肯定就会报错,原因插入是没有条件可设的,只要字段匹配就可以了,如果你是针对某一条数据进行修改,你where(['id' => 1])->updata(); 这样是正确的使用方法。

  • 评论于 2016-03-14 11:56 举报

    卧槽,很全面啊

    2 条回复
    评论于 2016-04-05 14:43 回复

    确实很全面

    评论于 2016-05-26 14:08 回复

    嘿嘿 呆着没事 就总结呗

  • 评论于 2016-03-18 08:58 举报

    请问查询某字段的总和怎么写?

    1 条回复
    评论于 2017-06-21 15:59 回复

    在where里写字段就可以了呀

  • 评论于 2016-04-12 16:58 举报

    where如何指定表名呢。

  • 评论于 2016-04-20 22:36 举报

    eg: User::find()->where(['status'=>$变量])->andWhere(['like','name',$变量])->asArray()->all();
    您好,为什么我这样查询数据时,总是只显示前面的where部分查询的结果,后面的模糊匹配部分发挥不了作用?

  • 评论于 2016-05-19 21:50 举报

    在哪儿看视频呀?找不到啊

  • 评论于 2016-11-18 16:36 举报

    请问,where怎样查询 或 的关系

    1 条回复
    评论于 2017-06-21 15:57 回复

    例子:Post文章表
    Post::find()->where(['or', 'id'=>1, 'name'=>'luobt'])->all();

  • 评论于 2016-11-23 14:58 举报

    可以使用orwhere

  • 评论于 2017-07-15 12:07 举报

    findAll() 跟 find()->All() 一样吗?

  • 评论于 2017-11-30 15:32 举报

    啦啦啦啦啦

    1 条回复
    评论于 2017-11-30 15:32 回复

    呵呵呵呵呵

  • 评论于 2019-09-19 16:41 举报

    User::find()->where(['name' => '小伙儿'])->sum('id'); 这是求和的

您需要登录后才可以评论。登录 | 立即注册