我试图从FuelPHP查询构建器中的一列中减去一个数值。
就是这样。
update item set price = price - 1000;
我写了这样的代码:
$query = DB::update('item')->set(array('price'=>'price'-1000));
但是,这不会从价格中减去1000,而且这个结果总是“价格:-1000”。
我该如何解决这个问题?
答案 0 :(得分:3)
或者,您可以在查询构建器中使用/ chain ->value()
并在其上使用DB::expr()
。
示例:
$value = 1000;
$query = DB::update('item')
->where('product_id', 999)
->value('price', DB::expr('price - ' . $value)) // i prefer using this, much more straightforward
->execute(); // DONT FORGET TO EXECUTE!
如果您决定使用多个字段,请使用->set()
:
->set(array(
'price' => DB::expr('price - ' . $value)
))