最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年11月27日 09:24:38   作者:楊 浩國  
本篇文章主要介紹了Laravel 批量更新多條數(shù)據(jù)的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

引言

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

任務要求

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

方法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)
}

總結歸納

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

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

相關文章

  • Laravel框架中緩存的使用方法分析

    Laravel框架中緩存的使用方法分析

    這篇文章主要介紹了Laravel框架中緩存的使用方法,結合具體實例形式分析了Laravel框架中緩存的常用方法、操作步驟及相關使用操作技巧,需要的朋友可以參考下
    2019-09-09
  • php中Swoole的熱更新實現(xiàn)代碼實例

    php中Swoole的熱更新實現(xiàn)代碼實例

    這篇文章主要介紹了php中SWOOLE的熱更新實現(xiàn)代碼實例,熱更新是比較常用的技術,有需要同學可以研究下
    2021-03-03
  • PHP下載文件的函數(shù)實例代碼

    PHP下載文件的函數(shù)實例代碼

    本文通過實例代碼給大家介紹php下載文件的函數(shù)相關知識,介紹的非常詳解,具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-05-05
  • PHP實現(xiàn)Session入庫/存入redis的方法

    PHP實現(xiàn)Session入庫/存入redis的方法

    本篇文章主要介紹了PHP實現(xiàn)Session入庫/存入redis的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • 值得分享的php+ajax實時聊天室

    值得分享的php+ajax實時聊天室

    這篇文章主要介紹了值得分享的php+ajax實時聊天室,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • yii框架創(chuàng)建與設置默認控制器并載入模板操作示例

    yii框架創(chuàng)建與設置默認控制器并載入模板操作示例

    這篇文章主要介紹了yii框架創(chuàng)建與設置默認控制器并載入模板操作,結合實例形式分析了Yii框架控制器與模板相關操作技巧及使用注意事項,需要的朋友可以參考下
    2020-03-03
  • php解決約瑟夫環(huán)示例

    php解決約瑟夫環(huán)示例

    這篇文章主要介紹了php解決約瑟夫環(huán)示例,需要的朋友可以參考下
    2014-04-04
  • php分頁查詢的簡單實現(xiàn)代碼

    php分頁查詢的簡單實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了php分頁查詢的簡單實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Yii 2.0在Grid中格式化時間方法示例

    Yii 2.0在Grid中格式化時間方法示例

    這篇文章主要跟大家分享了Yii 2.0在Grid中格式化時間的相關資料,文中給出了詳細的示例代碼供大家參考學習,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • PHP批量去除BOM頭代碼分享

    PHP批量去除BOM頭代碼分享

    這篇文章主要介紹了PHP批量去除BOM頭代碼分享,本文直接給出實現(xiàn)代碼,代碼比較簡單,容易看懂,需要的朋友可以參考下
    2015-06-06

最新評論

余庆县| 称多县| 苏尼特右旗| 宜君县| 年辖:市辖区| 江孜县| 如东县| 上蔡县| 墨竹工卡县| 吴川市| 余干县| 石泉县| 偏关县| 金华市| 内乡县| 长葛市| 奉新县| 金乡县| 精河县| 平凉市| 和田市| 资源县| 新营市| 玛纳斯县| 合作市| 小金县| 临清市| 石屏县| 万州区| 罗城| 永仁县| 阿坝| 静乐县| 宁都县| 黄大仙区| 海林市| 通城县| 临沧市| 土默特左旗| 额尔古纳市| 瑞昌市|