小编Ole*_*leg的帖子

如何在没有“重复键更新”的情况下使用 insertFromSelect(...) ?

我正在修改Createat.php,你可以在这里查看源代码

快速概述:

$select->from(array('o' => $this->getTable('sales/order')), $columns)
  ->join(array('oi' => $selectOrderItem), 'oi.order_id = o.entity_id', array())
  ->where('o.state NOT IN (?)', array(
    Mage_Sales_Model_Order::STATE_PENDING_PAYMENT,
    Mage_Sales_Model_Order::STATE_NEW
  ));
...
$select->where('o.channel_name IS NULL');
$adapter->query($select
  ->insertFromSelect($this->getMainTable(), array_keys($columns)));
Run Code Online (Sandbox Code Playgroud)

所以此时一切都很好。我的 sales_order_aggreerated_created 表现在包含所有“网站”销售总额。

$select->reset('where');
$select->where('o.channel_name = ?', 'Amazon');
$adapter->query($select
  ->insertFromSelect($this->getMainTable(), array_keys($columns)));
Run Code Online (Sandbox Code Playgroud)

这就是我的问题所在,当我重置('where')并按另一个channel_name进行过滤并尝试将新行插入表中时,insertFromSelect()函数正在使用“INSERT ... ON DUPLICATE KEY UPDATE”并覆盖值上一个查询的内部表。

是否有一个 $select->someFunction() 不会在重复时更新,或者我在哪里可以找到 insertFromSelect() 函数的定义?或者,也许还有另一种方法可以做到这一点?

php mysql magento magento-1.6

5
推荐指数
1
解决办法
2976
查看次数

标签 统计

magento ×1

magento-1.6 ×1

mysql ×1

php ×1