다중 선택 속성의 결과를 찾을 수있는 제품 컬렉션을 작성 중입니다.
(집합에 핀셋을 추가하는 관련 코드-실제 ID 값을 표시하도록 조정 됨)
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'measurement');
$value = array('finset' => array('237',
'236',
'235',
'234',
'233',));
$collection->addAttributeToFilter($attribute, $value);
결과 SQL (가시성 필터가 추가 된)은 다음과 같습니다.
SELECT DISTINCT
e . *,
at_measurement.value AS measurement,
at_visibility.value AS visibility
FROM
catalog_product_entity AS e
INNER JOIN
catalog_product_entity_varchar AS at_measurement ON (at_measurement.entity_id = e.entity_id) AND (at_measurement.attribute_id = '983') AND (at_measurement.store_id = 0)
INNER JOIN
catalog_product_entity_int AS at_visibility ON (at_visibility.entity_id = e.entity_id) AND (at_visibility.attribute_id = '526') AND (at_visibility.store_id = 0)
WHERE
(e.attribute_set_id IN ('74')) AND (FIND_IN_SET('237',
'236',
'235',
'234',
'233',
at_measurement.value)) AND (at_visibility.value IN ('2' , '4'))
GROUP BY e.entity_id
문제는 SQL 오류가 발생한다는 것입니다.
"SQLSTATE[42000]: Syntax error or access violation: 1582 Incorrect parameter count in the call to native function 'FIND_IN_SET'"
그리고 나는 (생각) 이유를 알 수 있습니다 : 일부 다중 선택 값에는 하나의 옵션 만 있으므로 FINSET에 적합하도록 쉼표로 구분 된 값은 없습니다
이 오류가 발생하는 이유가 맞습니까? 이 컬렉션 개체를 어떻게 작성하여이를 설명 할 수 있습니까?
위의 것이 아니라면 무엇을 놓치고 있습니까?
find_in_set 절을 빼고 mysql workbench에서 SQL을 실행 한 결과 :
1
복제 : magento.stackexchange.com/questions/14109/…
—
ProxiBlue