ActiveRecord中的limit(1)与one()的区别

 1 (new \yii\db\Query())->from('user')->limit(1)->one()
 2 
 3 public function one($db = null)
 4 {
 5     $row = parent::one($db);
 6     if ($row !== false) {
 7         $models = $this->populate([$row]);
 8         return reset($models) ?: null;
 9     }
10 
11     return null;
12 }

 

one()本质是从取出的结果集中取出第一条,即结果集可能很大,取第一条。条件语句中不会加上limit 1条件。
如果你清楚的知道查询将会只返回1行或几行数据(例如:通过某些主键来查询),这很好也提倡这样做。
但是,如果查询结果有可能返回大量的数据时,那么你应该显示调用limit(1)方法,以改善性能。

posted on 2019-07-10 16:24  caohongchang  阅读(1476)  评论(0编辑  收藏  举报