CakePHP如何按条件更新限制和顺序行

时间:2014-08-15 16:40:31

标签: cakephp


我试图用“order by”和“limit”条件更新行。 我如何使用 Model :: updateAll()方法更新行“order by”和“limit”?
编辑:
当我尝试在Model-> query()方法中执行此查询时:“UPDATE table_name SET status = 2 WHERE type = 1 AND status = 1 ORDER BY id asc limit 10”,我收到错误“语法错误或访问冲突: 1064您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册,以便在第1行“10”附近使用正确的语法。但是当我在mysql控制台客户端执行此查询时,一切正常。

1 个答案:

答案 0 :(得分:0)

CakePHP 2.x不支持LIMIT的{​​{1}}和GROUP参数。

您可以使用Model::updateAll()运行所需的自定义SQL。但是,不会触发模型回调。

我建议如果您需要使用GROUP和LIMIT更新所有内容,请再次考虑如何最好地提供您需要的功能。

更新数据库中的所有行并不是一个好主意......如果你有7500万行怎么办?运行和完成可能需要数小时。即使你不希望有7500万行,它仍然可能不是一个好的解决方案。

很难提供更好的示例,因为您还没有描述为什么要更新所有内容。