Я попытался вычесть числовое значение из одного столбца в конструкторе запросов FuelPHP.
Это вот так.
update item set price = price - 1000;
И я написал такие коды:
$query = DB::update('item')->set(array('price'=>'price'-1000));
Тем не менее, это не вычитает 1000 из цены, и этот результат всегда «цена: -1000».
Как мне решить это?
В качестве альтернативы, вы можете использовать / цепочку ->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)
))
Других решений пока нет …