久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Laravel 批量更新多條數(shù)據(jù)的示例

本篇文章主要介紹了Laravel 批量更新多條數(shù)據(jù)的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

引言

最近在寫任務中,碰到一個問題,需要批量更新多條數(shù)據(jù),但是Laravel沒有提供這樣的方法,Google了一些方法,剛好借著任務來舉例說明一下。

任務要求

任務是一個簡單的清除未讀通知的API,其實就是把通知表中符合user id 和 is read = 0 的行中的 is_read改為1(0代表未讀,1代表已讀)。

Laravel 批量更新多條數(shù)據(jù)的示例

方法1

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

  $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();
  }      //更新數(shù)據(jù)表

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

方法2

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

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

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

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

復制代碼 代碼如下:

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

$notices的返回值是更改的數(shù)據(jù)行數(shù)

我們以后的應用中會有很多種類似的任務,像是忽略一些通知、已讀一些消息等等,為了代碼的復用,我們可以寫一個方法,傳入表名、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)
}

總結(jié)歸納

這兩個方法都只能解決一些特定的問題,但是提供了一種思路,有時候用SQL語句可以很方便、簡單的操作數(shù)據(jù)表,如果我們需要根據(jù)不同的條件,批量肯定多條數(shù)據(jù)的多條信息那么就需要用SQL的WHEN THEN方法了,具體思路就是在我上邊貼出來的地址里。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持。

【網(wǎng)站聲明】本站除付費源碼經(jīng)過測試外,其他素材未做測試,不保證完整性,網(wǎng)站上部分源碼僅限學習交流,請勿用于商業(yè)用途。如損害你的權(quán)益請聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要給大家介紹了關于利用Homestead如何快速運行一個Laravel項目的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們
這篇文章主要給大家介紹了關于Laravel中Intervention/image圖片處理擴展包的安裝、使用與在使用可能遇到的坑的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一
這篇文章主要為大家詳細介紹了Laravel下生成驗證碼的類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
Laravel以其簡潔、優(yōu)雅的特性贏得了大家的廣泛關注,無論是專家還是新手,在開發(fā)PHP項目的時候,都會第一時間的想到Laravel。本文我們將討論為什么Laravel會成為最成功的PHP框架
這篇文章主要介紹了laravel5 使用try catch的相關知識,需要的朋友可以參考下
這篇文章主要給大家介紹了關于Laravel 5.5中為響應請求提供的可響應接口的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們
主站蜘蛛池模板: 国产色99精品9i | 亚洲综合电影 | 本道综合精品 | 国产99久久 | 日韩免费一区二区 | 亚洲免费观看视频 | 人人人人爽 | 中文字幕亚洲视频 | 日韩一区二区三区在线看 | 精品久久久久久久 | 在线观看你懂的网站 | 精品一区国产 | 欧美国产日韩成人 | 久久夜色精品国产 | 国产精品18毛片一区二区 | 久久国产区 | 91精品国产综合久久婷婷香蕉 | 亚洲精品99| 日韩成人免费视频 | 色av一区二区三区 | 欧美精品1区2区3区 免费黄篇 | 国产精品爱久久久久久久 | 一区二区三区电影网 | 视频一区二区三区四区五区 | 国产乱码精品一区二区三区五月婷 | 亚洲区在线 | 日韩一区二区在线看 | 亚洲成人午夜电影 | 中文字幕av第一页 | 国产成人精品一区二区三区在线 | hitomi一区二区三区精品 | 久久精品中文字幕 | 最新日韩欧美 | 成人在线看片 | 在线成人免费观看 | 伊人网在线综合 | 国产视频二区 | 三级成人在线观看 | 日韩欧美国产精品一区二区三区 | 福利片在线观看 | 欧美国产大片 |