【发布时间】:2016-04-26 09:45:18
【问题描述】:
我想构建(例如)以下 sql 查询,其中匹配数据行的位置字段应加一:
UPDATE images SET position = position + 1 WHERE (position > 2 AND position <= 4)
我尝试使用 CakePHP 3 的查询构建器构建查询:
$query->update()
->set(['position' => 'position + 1'])
->where(['position >' => 2])
->andWhere(['position <=' => 4])
->execute();
由于 position 是一个整数,CakePHP 将表达式 'position + 1' 转换为 0,并且不将 'position + 1' 传递给 sql 查询。
有没有办法使用 CakePHP 查询构建器构建这个查询,或者我必须为此使用原始 sql 语句?
【问题讨论】:
-
只需
set(['position = position + 1']
标签: sql cakephp-3.0