Php 将基于Magento模型的脚本转换为SQL

Php 将基于Magento模型的脚本转换为SQL,php,sql,magento,Php,Sql,Magento,在使用direct SQL的脚本中,是否有任何方法可以转换使用magento模型和集合的脚本 我知道这是可能的,因为一切:),问题是关于一种简单直观的方法,让我从脚本中获取查询,然后在direct DB脚本中重用 为什么??我希望有一个更快的脚本 代码示例 假设这个脚本: function getProd() { $collection = Mage::getModel('catalog/product') ->getCollection() ->a

在使用direct SQL的脚本中,是否有任何方法可以转换使用magento模型和集合的脚本

我知道这是可能的,因为一切:),问题是关于一种简单直观的方法,让我从脚本中获取查询,然后在direct DB脚本中重用

为什么??我希望有一个更快的脚本

代码示例

假设这个脚本:

function getProd() {

$collection = Mage::getModel('catalog/product')
        ->getCollection()
        ->addTierPriceData();

return $collection;
}
function getTier($prod) {

$t_1 = false;

$_tierPrices = $prod->getTierPrice();

if ($_tierPrices) {

    $_firstTier = array_slice($_tierPrices, 0, 1);

    if (isset($_firstTier[0]))
        $t_1 = $_firstTier[0]['price'];
}

return $t_1;
}

function exec() {

$collection = getProd();

$i = 0;

foreach ($collection as $prod) {

    $class = ($i % 2 == 0) ? '' : 'class="odd"';
    $t1 = 0;
    if ($t1 = getTier($prod)) {

            $prod = mage::getModel('catalog/product')->load($prod->getId());

            $prod->setPrice($t1);
            $prod->save();
            if ($safe)
                set_time_limit(60);
        }
    }
}

exec();
基本上,我希望处理所有具有分层价格的产品,并用分层价格替换产品的主要价格。

脚本在12000个产品上花费了9个多小时,所以我想SQL方法会更快,但需要我研究DB结构


因此,如果有人有一个很好的方法在PHP/SQL脚本中转换它,那就太好了(不仅仅是打印集合查询)

如果您只需要一个简单的一次性解决方案来查看查询内容,那么您应该能够执行类似于
echo$collection->getSelect()的操作。集合上的
getSelect
函数将返回一个
Zend\u Select
对象。这个类有一个
\uuuu toString
函数,它返回当前生成查询的sql

抱歉,我刚完成更新问题。回答比$collection->getSelect()更结构化一点;你是威康。。。例如,更新查询呢?