1

使用 DBIx::Class 执行集合操作的最佳方式是什么?我看到一种解决方案是根据我的查询创建一个结果源,但我的条件将由用户定义,我不知道最佳答案是否是动态创建结果源。

基本上我需要将这种类型的查询转换为 DBIC where codeattr_name并且value由用户定义:

SELECT pid FROM product WHERE code = 48
INTERSECT
(
  ( SELECT pid FROM attr WHERE attr_name = 'color' AND value = 'blue'
    INTERSECT
    SELECT pid FROM attr WHERE attr_name = 'size' AND value = 'big'
  )
  UNION
  ( SELECT pid FROM attr WHERE attr_name = 'color' AND value = 'green'
    INTERSECT
    SELECT pid FROM attr WHERE attr_name = 'size' AND value = 'small'
  )
)
4

1 回答 1

2

DBIx ::Class::Helper::ResultSet::SetOperations 可以满足您的需求吗?

于 2011-08-11T15:38:17.567 回答