代码之家  ›  专栏  ›  技术社区  ›  Prashanth

Laravel中的重复查询-调试器

  •  0
  • Prashanth  · 技术社区  · 6 年前

     public function updateReviewColumn(){
            $reviewData = $this->pluck('indicator')->toArray();
            foreach ($reviewData as $datum) {
                if ($datum == 'Y')
                    $this->where('indicator', $datum)
                        ->update(['reviewindicator' => 'Yes']);
                else
                    $this->where('indicator', $datum)
                        ->update(['reviewindicator' => 'No']);
            }
        }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   koalaok    6 年前

    我将把下面的问题转换成雄辩的语句:

    UPDATE  yourTable
    SET     indicator = IF(indicator = 'Y', 'Yes','No'),    
    WHERE   indicator= 'Y' OR indicator= 'N'
    

    我认为您应该使用DB raw query(如果您落后于MySQL的话)

    MyTable::where('indicator', 'Y')->update(['indicator' => 'Yes']);
    
    MyTable::where('indicator', 'N')->update(['indicator' => 'No']);
    

    如果在MySQL中启用了安全的\u更新,可能会遇到问题