0
私はちょっとしたShop-systemを持っていますが、特定の属性と条件を持つ製品を選択したいと思います。ここで特定の属性で製品を検索
私のセットアップ:
テーブルXYZは:
- は
- が
- が
は、だから今、私は属性のIDを持っているすべての製品を選択するattribute_group_id ATTRIBUTE_ID PRODUCT_ID 1,3,5および7ではなく9および2である。
私は簡単な方法でこれを行うことができます。最初のアイデアは製品IDでグループ化し、attribute_idsをgroup_concatし、必要な属性IDを含めるか除外することでした。
SELECT CONCAT('_',GROUP_CONCAT(attribute_id SEPARATOR '_'),'_') as attrs,
product_id
FROM my_table
GROUP BY product_id
HAVING (attrs LIKE '%_1_%'
AND attrs LIKE '%_3_%'
AND attrs LIKE '%_5_%'
AND attrs LIKE '%_7_%')
AND (attrs NOT LIKE '%_2_%'
AND attrs NOT LIKE '%_9_%')
これは機能しますが、より良い解決法があります。
問題は、私がこれらのattrsをすべて持っている製品を望んでいるということです。あなたのクエリは、これらのattrsのいずれかを持つ各製品を私に与えます。 – marco