找来找去似乎就三种方法:
- 先
::find()
再->delete()
,我猜这样会多一次select
影响性能?
(顺便问下有没有方法可以记录Yii框架生成并查询的SQL语句?) ::deleteAll()
,没有limit,也是影响性能- 手写语句,太麻烦
所以,有没有又方便又性能比较好的删除、更新单条数据的方法呢?
例如CI框架可以这样:db->from('table')->limit(1)->where('id', 1)->delete()
find应该不会产生查询的,除非->one()才会,因为find是连贯方法的起始点,做一些准备工作,应当不存在你说的问题,你可以用yii debug看一下所执行的sql语句。
query可以啊, yii\db\Query
::findOne() ???
http://www.yiichina.com/doc/api/2.0/yii-db-command#delete()-detail