调用模型save()时,为何where条件丢失了

浏览:637 发布日期:2019/06/19 分类:求助交流
官方例子如下:$user = User::where('status',1)
    ->where('name','liuchen')
    ->find();
$user->name     = 'thinkphp';
$user->email    = 'thinkphp@qq.com';
$user->save();
我的代码是:        $set = User::where( 'name', '=', 'aa' )
            ->where( 'Date', '=', '20190202' )
        ->where( 'GroupId', '=', 'A1' )
        ->find();
$set ->Count = ['inc', 1];
$set ->save();
运行后发现它把所有Date='20190202'(这个字段是组合主健之一)的记录全更新了.查日志发现如下:[ sql ] [ SQL ] SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER ( ORDER BY rand()) AS ROW_NUMBER FROM (SELECT  * FROM [a_user] WHERE  [name] = 'aa'  AND [Date] = '20190619'  AND [GroupId] = 'A1') AS thinkphp) AS T1 WHERE (T1.ROW_NUMBER BETWEEN 1 AND 1) [ RunTime:0.001000s ]
[ sql ] [ SQL ] UPDATE [a_user] SET [Count]=[Count]+1 FROM [a_user]   WHERE  [Date] = 20190619 [ RunTime:0.002000s ]
可以看到update语句里where条件不全了,少了两个条件.大神帮我看下这是为什么啊?
最佳答案
评论( 相关
后面还有条评论,点击查看>>