DBIx :: Classを使用してセット操作を実行する最良の方法は何ですか? 私のクエリに基づいて結果ソースを作成することが1つの解決策であることがわかりましたが、条件がユーザーによって定義され、最適な答えがその場で結果ソースを作成するかどうかはわかりません。DBIx :: Classでの操作の設定
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'
)
)
あなたが定義したと言っているのは、上記の9つのプレースホルダより多いか少ないかということですか? – cubabit
はい、正確です。ユーザーは、(attr_name、value)と交点および共用体の組を使用して多数のフィルターを定義できます。 – nsbm