gpt4 book ai didi

mysql - 在 CakePHP 3.x 的 updateAll() 方法中使用 IN 子句

转载 作者:行者123 更新时间:2023-11-29 11:16:38 27 4
gpt4 key购买 nike

我正在使用 Cakephp 3.x 并且我想为多个 id 更新我的单个字段。像这样的东西..

UPDATE mytable SET `status` = '1' WHERE ID IN (1,2,3)

目前我正在使用 cakpehp 查询来执行此操作

$this->Leaveregisters->query()
->update()
->set(['leaveregister_status' => $this->request->data('status')])
->where(['leaveregister_id IN ('.$this->request->data('final_ids_string').')'])
->execute();

嗯,这对我有用,但我希望使用 cakephp 3.xs 的 ORM 方法来执行此操作..所以我尝试使用它

$table->updateAll(['field' => $newValue], ['id' => $entityId]);

但是这段代码仅适用于我不想要的单个ID..我也不想使用foeach循环来执行相同的操作。相反,我希望在任何情况下都通过数组或逗号分隔来传递 ID,并希望执行相同的操作。

有什么方法可以使用cakephp 3.x使用ORM方法执行相同的操作

谢谢

最佳答案

使用 updateAllquery() 对象进行批量更新与您在 this 末尾的手册中阅读的内容相同。段落

这样你就可以做到

$this->Leaveregisters->query()
->update()
->set(['leaveregister_status' => $this->request->data('status')])
->where(['leaveregister_id IN' => [1,2,3])
->execute();

$this->Leaveregisters->updateAll(
['leaveregister_status' => $this->request->data('status')]
['leaveregister_id IN' => [1,2,3]);

请记住,当使用 IN 子句时,您必须传递一个数组。阅读 this关于如何创建 IN 子句的手册部分

关于mysql - 在 CakePHP 3.x 的 updateAll() 方法中使用 IN 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39630624/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com