Magento属性过滤器使用'like'无法按预期运行

时间:2011-12-14 22:21:59

标签: php magento

我遇到addAttributeToFilter()的问题,因为它无法正常工作。

$product = Mage::getModel('catalog/product');
...snip...
$simple_associated_collection = $product->getCollection()
  ->addAttributeToFilter('type_id', 'simple')
  ->addAttributeToFilter('sku',array('like'=>$configurable_product_sku.'_%'))
  ->load();

传入4_%我希望得到

4_1
4_2

但我也得到了

42_1
420_1

目标是获取一系列简单产品,以便我可以在导入后将它们与可配置的父级相关联。

我应该如何使用LIKE获得与MySQL相同的结果?

2 个答案:

答案 0 :(得分:6)

Magento在这里没有错,_是一个通配符。

我用Nick的评论回应了我所期望的sql。

修正:

->addAttributeToFilter('sku',array('like'=>$configurable_product_sku.'\_%'))

答案 1 :(得分:-1)

例如

->addAttributeToFilter('sku',array('like'=>$configurable_product_sku.'_'.'%'))