91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Laravel 怎么實現批量更新多條數據

發布時間:2021-04-09 17:26:28 來源:億速云 閱讀:2778 作者:Leah 欄目:開發技術

使用Laravel 怎么實現批量更新多條數據?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

方法1

首先想到的是利用where()方法查出user id和is read符合條件的notices,然后利用foreach循環和save()更新數據表。

  $notices = Notice::where('user_id', $userId)
   ->where('is_read', 0)
   ->get();  //得到user_id 和 is_read 符合的notices
 
  foreach($notices as $notice) {
   $notice->is_read = 1;
   $notice->save();
  }      //更新數據表

這個方法確實可行,可是每次遍歷都會和數據庫進行通訊,當數據量很大的時候,響應速度就會很慢,也非常的浪費資源。

方法2

當我去Google一篇博文啟發了我: Laravel一次更新多條記錄,批量更新的方法

其實可以利用一條數據庫的SQL語句就搞定這個問題

UPDATE notices SET is_read = 1 WHERE user_id = 1 AND is_read =0

一次數據通訊,加快了響應速度又減少資源浪費,那么我可以這樣寫

復制代碼 代碼如下:


$notices = DB::update(DB::raw("UPDATE notices SET is_read = 1 WHERE user_id = 1 AND is_read =0"));

$notices的返回值是更改的數據行數

我們以后的應用中會有很多種類似的任務,像是忽略一些通知、已讀一些消息等等,為了代碼的復用,我們可以寫一個方法,傳入表名、user_id和要修改字段名

publish function update_batch_one($table, $user_id, $column) 
{
 $q ="UPDATE".$table.SET.$column."=1WHEREuser_id=".$user_id."AND".$column."=0";
 
 return DB::update(DB::raw($q)
}

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

措勤县| 东光县| 东平县| 比如县| 吉木萨尔县| 彭水| 名山县| 长白| 彰武县| 岫岩| 沅陵县| 新巴尔虎右旗| 琼结县| 佛山市| 永兴县| 广元市| 无为县| 志丹县| 太和县| 开远市| 桂阳县| 昭平县| 蕲春县| 冀州市| 丹阳市| 龙海市| 青田县| 辽阳县| 宁陵县| 梁河县| 和静县| 司法| 抚顺市| 射阳县| 晋江市| 古田县| 辉县市| 宁德市| 沂水县| 陵水| 清水县|