1. AR::findOne()
与AR::find()->where()->one()
,其实是一样的,findOne()
是where()->one()
的快捷方式。
2. 如果是主键查询,AR::find()->where(['id'=5])->one()
与AR::find()->where(['id'=>5])->limit(1)->one()
是一样的,因为sql的执行结果都只有一条。
3. 如果是条件查询,AR::find()->where(['status'=1])->one()
与AR::find()->where(['status'=>1])->limit(1)->one()
,后者速度会快一些(数据量越大越明显),因为前者会返回所有符合条件的记录然后抛出第一个结果,而后者只返回一条记录。