文章整理来自网络,主要参考有:
http://fishpig.co.uk/magento/tutorials/addattributetofilter/
http://stackoverflow.com/questions/5301231/addattributetofilter-and-or-condition-in-magentos-collection
主要的句子
$_products = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect(array('name', 'product_url', 'small_image'))
->addAttributeToFilter('sku', array('like' => 'UX%'))
->load();
addAttributeToSelect没什么要说的,只要筛选正确的数据表有的字段就可以
eq的两种写法写法
$_products->addAttributeToFilter('status', array('eq' => 1)); // Using the operator
$_products->addAttributeToFilter('status', 1); // Without using the operator
如果上面有不同的筛选,就相当于AND了,OR的写法:
// OR QUERY
$collection->addAttributeToFilter(array(
array(
'attribute' => 'sku','like' => '%ch%'),
array(
'attribute' => 'status','eq' => '1')
));
noequal
$_products->addAttributeToFilter('sku', array('neq' => 'test-product'));
$_products->addAttributeToFilter('sku', array('like' => 'UX%'));//like
$_products->addAttributeToFilter('sku', array('nlike' => 'err-prod%'));//nolike
$_products->addAttributeToFilter('id', array('in' => array(1,4,98)));//in
$_products->addAttributeToFilter('id', array('nin' => array(1,4,98))); //not in
$_products->addAttributeToFilter('description', array('null' => true)); //null
$_products->addAttributeToFilter('description', array('notnull' => true)); //not mull
$_products->addAttributeToFilter('id', array('gt' => 5));//
Greater Than - gt
$_products->addAttributeToFilter('id', array('lt' => 5)); //
Less Than - lt
$_products->addAttributeToFilter('id', array('gteq' => 5)); //
Greater Than or Equals To- gteq
$_products->addAttributeToFilter('id', array('lteq' => 5)); //
Less Than or Equals To - lteq
排错方法
// Method 1
Mage::getResourceModel('catalog/product_collection')->load(true);
// Method 2
$collection = Mage::getResourceModel('catalog/product_collection')
echo $collection->getSelect();