我通常使用queryRow
來獲得單個記錄。例如: -限制1應該與YiR中的queryRow一起使用?
$lastReport = Yii::app()->db->createCommand(
'SELECT * FROM report ORDER BY created DESC'
)->queryRow();
我查看了MySQL日誌以瞭解哪個查詢用於它。
SELECT tbl_report.* FROM report ORDER BY created DESC
Yii似乎從表格中檢索所有記錄並返回第一條記錄。
所以我認爲我們應該使用LIMIT 1
,只要我們使用queryRow
。例如: -
$lastReport = Yii::app()->db->createCommand(
'SELECT * FROM report ORDER BY created DESC LIMIT 1'
)->queryRow();
由於queryRow正在返回「第一行(在陣列中的計)的查詢結果的」,Yii的應自動添加限制。否則用戶將使用此查詢來獲取單個記錄,這會導致性能下降。
我的理解是正確的還是我錯過了什麼?
是否有你不使用ActiveRecord的原因?但是從Yii的類引用中,你應該確實得到queryRow()的第一行。 – davey
@davey使用數組比對象更容易。但在這裏,我給了一個簡化的查詢演示目的。 –
因爲沒有'WHERE',所以它會提取所有的行,所以使用'limit 1'來獲取最新的報告 – 2013-10-25 10:23:20