在Magento集合中使用sql“CONVERT”存储过程

时间:2011-10-13 09:35:11

标签: mysql magento

我想添加一个“CONVERT”存储过程,如下所示:

SELECT id, value, CONVERT(value, DECIMAL) AS ordred_value FROM test ORDER BY ordred_value;

收集此查询:

$collection = $this->getAssociatedProductCollection($product)
    ->addAttributeToSelect('*')
    ->addFilterByRequiredOptions()
    ->setPositionOrder()
    ->addStoreFilter($this->getStoreFilter($product))
    ->addAttributeToFilter('status', array('in' => $this->getStatusFilters($product)))
    ->addAttributeToSort('my_attribute', 'DESC');

用于按照我的自定义属性“my_attribute”对文本字段中包含数值的相关产品进行排序。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我不确定这是最好的解决方案,但你可以这样做:

<?php

$collection->getSelct()->columns(array('converted_value' => 'CONVERT(e.my_attribute, DECIMAL)'));

它会为结果添加一个新列。接下来使用上面的select和order方法对集合进行排序。