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)方法,以改善性能。