如何用一个查询从一个表中选择多个键值?

6rqinv9w  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(307)

这是示例产品属性表

product_id  property_id property_value
5           1           white
5           2           50
5           3           50
5           4           55
5           5           mm
6           8           cm

我想动态过滤我的产品。例如:

select property_id 1 and property_value white
AND
select property_id 2 and property_value 50
AND
select property_id 4 and property_value 55
AND
etc ...

我可以从基本查询进行动态查询。当我同时使用所有条件时,没有匹配的记录,因为所有条件运算符都是and。什么是最好的查询?谢谢你的回答。

2vuwiymt

2vuwiymt1#

听起来你用错关键词了。使用 OR 而不是 AND 在标准集之间:

SELECT DISTINCT product_id

FROM product_properties

WHERE
(property_id = 1 and property_value = 'white')
OR
(property_id = 2 and property_value = '50')
OR
(property_id = 4 and property_value = '55')
OR
etc ...

你可以用 DISTINCT 如果你只想要一个 product_id 匹配各种条件,或者将其禁用,以便为匹配的每行获取一个。

相关问题