Cakephp 使用模型插入并选择

问题描述 投票:0回答:2

我可以使用模型在 cakephp 中创建此查询吗?

INSERT INTO table (name,age)
SELECT name, age
FROM table2
WHERE age >= 50
mysql cakephp select model insert
2个回答
1
投票

您有 2 个选择:

丑陋的一个:使用Model::query除非绝对必要,否则请勿使用此功能

体面的:(我不会给你复制/粘贴解决方案,而是给你想法)

  • 从 model2 获取所有数据 ($data = $Model2->find('all', array('conditions' => ...
  • 将(如果需要)某种格式应用于包含结果的变量
  • 使用 Model::saveMany()

0
投票

这仍然出现在搜索中,所以这是更新。

一般来说,使用实体和save()来插入数据比较容易。通过将 SELECT 和 INSERT 查询组合在一起,您可以创建 INSERT INTO ... SELECT 样式查询:

$select = $articles->find()
    ->select(['title', 'body', 'published'])
    ->where(['id' => 3]);

$query = $articles->insertQuery()
    ->insert(['title', 'body', 'published'])
    ->values($select)
    ->execute();

适用于:

(参见第三个例子。)

© www.soinside.com 2019 - 2024. All rights reserved.