从fuel php查询构建器中的列中减去一个值

时间:2014-10-30 03:34:30

标签: php mysql fuelphp

我试图从FuelPHP查询构建器中的一列中减去一个数值。

就是这样。

update item set price = price - 1000;

我写了这样的代码:

$query = DB::update('item')->set(array('price'=>'price'-1000));

但是,这不会从价格中减去1000,而且这个结果总是“价格:-1000”。

我该如何解决这个问题?

1 个答案:

答案 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)
))