第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在laravel中用不同的值更新前三行

如何在laravel中用不同的值更新前三行

PHP
茅侃侃 2022-01-02 15:31:45
如何使用不同的值(從 1 到 3)更新前三個結(jié)果:查詢以獲取前 3 個結(jié)果:$top3 = DB::table('quests')                    ->orderby('score', 'desc')                     ->take(3)                    ->pluck('id'); 查詢更新排名為 1 到 3 的列:DB::table('quests')->whereIn('id', $top3)                     ->first()->update(['rank', 1])                     ->second()->update(['rank', 2])                     ->third()->update(['rank', 3]);              //of course the above updates are from my imagination :)              //just trying to describe what I'm trying to do
查看完整描述

1 回答

?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

您的第二個查詢是多余的;沒有理由查詢ids只是再次查詢表。在一個查詢/循環(huán)中完成所有操作:


$top3 = Quest::orderBy("score", "DESC")->take(3)->get();

foreach($top3 AS $index => $quest){

  $quest->rank = $index+1;

  $quest->save();

}

注意:這假設您有一個Quest模型;仍然可以使用DB::table(),但如果您使用 Laravel,請使用模型。


以上將在單個查詢中獲取 3 條記錄,正確處理排序和限制,然后循環(huán)并分配排名(基于 0 $index,每次循環(huán)遞增,加 1 處理)


查看完整回答
反對 回復 2022-01-02
  • 1 回答
  • 0 關注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號