0

我正在尝试过滤具有嵌套“或”“和”过滤器的集合,其中 t_id 和 t_code 都是属性

     $collection->addAttributeToFilter(
                        array(
                            array(
                                'attribute' => 't_id',
                                'null' => true
                            ),

                                array(
                                    'attribute' => 't_id',
                                    'finset' => $allowedtId
                                )

                        )
                    );
$collection->addAttributeToFilter(
                    array(
                        array(
                            'attribute' => 't_code',
                            'null' => true
                        ),
                        array(
                            'attribute' => 't_code',
                            'finset' => $tAttCode
                        )
                    )
                );

这是查询的sql

WHERE ((at_t_id.value IS NULL) OR (FIND_IN_SET('', at_t_id.value))) AND ((at_t_code.value IS NULL) OR (FIND_IN_SET('2348', at_t_code.value)))

但我想得到这样的东西

 WHERE (at_t_id.value IS NULL)

   OR 

 (
     (FIND_IN_SET('1245', at_t_id.value)) 

      AND

    (
        (at_t_code.value IS NULL)

         OR
        (FIND_IN_SET('2348', at_t_code.value))

    )
 )

有什么办法可以实现吗?

4

0 回答 0