簡體   English   中英

如何在laravel雄辯的更新查詢中更新表field = field + 1

[英]How to update table field = field+1 in laravel eloquent update query

我想在laravel中更新查詢,其中$field = $field+1 使用mysqli_query可以正常工作。 但這不是有效的laravel orm。

我想在laravel orm中運行此查詢

$sql = "Update $tbl set cnt=cnt+1 where user_id='x'"

在mysql中運行此查詢時,得到以下結果

If cnt =1 in databases it will increment $cnt = $cnt+1 = 1+1 =2

我想在laravel orm中運行此sql查詢

$where = ['user_id' => 'x'];
$field = ['cnt' => 'cnt+1'];
$tbl = 'log_cnt';
Capsule::table($tbl)->where($where)->update($field);

但是運行此查詢后,輸出將在數據庫中顯示$cnt=0

增加或減少列的值

遞增單列

Capsule::table('log_cnt')->increment('cnt');
     Query: UPDATE log_cnt SET cnt = cnt + 1;

Capsule::table('log_cnt')->increment('cnt', 5);
     Query: UPDATE log_cnt SET cnt = cnt + 5;

減少單列

Capsule::table('log_cnt')->decrement('cnt');
     Query: UPDATE log_cnt SET cnt = cnt - 1;

Capsule::table('log_cnt')->decrement('cnt', 5);
     Query: UPDATE log_cnt SET cnt = cnt - 5;

您還可以指定其他列以進行更新:

Capsule::table('log_cnt')->increment('cnt', 1, ['user_id' => 'x']);
    Query: UPDATE log_cnt SET cnt = cnt + 1, user_id = 'x';

參考: https : //laravel.com/docs/5.4/queries#increment-and-decrement

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM