[英]How to update table field = field+1 in laravel eloquent update query
I want to update a query in laravel where $field = $field+1
. 我想在laravel中更新查询,其中
$field = $field+1
。 It works fine using mysqli_query
. 使用
mysqli_query
可以正常工作。 But It is not working laravel orm. 但这不是有效的laravel orm。
I want to run this query in laravel orm 我想在laravel orm中运行此查询
$sql = "Update $tbl set cnt=cnt+1 where user_id='x'"
When running this query in mysql I get following results 在mysql中运行此查询时,得到以下结果
If cnt =1 in databases it will increment $cnt = $cnt+1 = 1+1 =2
I want to run this sql query in laravel orm 我想在laravel orm中运行此sql查询
$where = ['user_id' => 'x'];
$field = ['cnt' => 'cnt+1'];
$tbl = 'log_cnt';
Capsule::table($tbl)->where($where)->update($field);
But After running this query output will show $cnt=0
in database 但是运行此查询后,输出将在数据库中显示
$cnt=0
Incrementing or decrementing a value of a column 增加或减少列的值
To increment single column 递增单列
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;
To decrement single column 减少单列
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;
You may also specify additional columns to update: 您还可以指定其他列以进行更新:
Capsule::table('log_cnt')->increment('cnt', 1, ['user_id' => 'x']);
Query: UPDATE log_cnt SET cnt = cnt + 1, user_id = 'x';
Reference : https://laravel.com/docs/5.4/queries#increment-and-decrement 参考: https : //laravel.com/docs/5.4/queries#increment-and-decrement
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.