次の mysql クエリを使用する場合:
select * from gc_product_attribute where (attribute_id = 30 AND text like '62') and (attribute_id = 35 AND text like '71')
値はテーブルに存在しますが、何も返されません
attribute_id | text
30 | 62
35 | 71
次の mysql クエリを使用する場合:
select * from gc_product_attribute where (attribute_id = 30 AND text like '62') and (attribute_id = 35 AND text like '71')
値はテーブルに存在しますが、何も返されません
attribute_id | text
30 | 62
35 | 71
(attribute_id = 30 AND '62' のようなテキスト)を持つアイテムと (attribute_id = 35 AND '71' のようなテキスト) を持つアイテムを返したいとします。
これは、(attribute_id = 30 AND '62' のようなテキスト)および(attribute_id = 35 AND '71' のようなテキスト) を持つアイテムを取得することとは異なります。
次の 2 つの方法で表現できます。
X を満たす項目と Y を満たす項目を取得する: UNION
select * from gc_product_attribute where (attribute_id = 30 AND text like '62') UNION select * from gc_product_attribute where (attribute_id = 35 AND text like '71')
X または Y のいずれかを満たすアイテムを取得する: OR
select * from gc_product_attribute where (attribute_id = 30 AND text like '62') OR (attribute_id = 35 AND text like '71')
してみてください:
select *
from gc_product_attribute
where attribute_id=30
AND text like '%62%'
OR (attribute_id = 35 AND text like '%71%')