MySQL查询中的WHERE和AND

jos*_*ppa 3 php mysql select product where

嗨,我有一点问题,我找不到解决方案.我在MySql中很新.

假设我有这张表:

 _______________
|prodID| |propID|
|________|______|
|   1    | 2    |
|   1    | 5    |
|   2    | 6    |
|   2    | 7    |
|   3    | 5    |
|   3    | 2    |
|   3    | 9    |
|   4    | 5    |
|   4    | 3    |
|   5    | 2    |
|   5    | 5    |
|________|______|
Run Code Online (Sandbox Code Playgroud)

prodID是Product-ID,propID是Property-ID.
现在我想得到的产品例如具有propID = 2的属性和propID = 5的属性.如果propID = 2中的属性是"由玻璃制成"而propID = 5则是"对儿童安全".我希望我得到的产品(prodID)都是."由玻璃制成,对儿童安全".所以我得到的propID是1,3和5.

这对我没有用:

SELECT prodID FROM table WHERE propID=2 AND propID=5
Run Code Online (Sandbox Code Playgroud)

我希望我的意思很明确,希望有人能帮助我.

谢谢

编辑:

表现在在prodID = 4时更改.如果我愿意的话

SELECT prodID FROM table WHERE propID=2 OR propID=5
Run Code Online (Sandbox Code Playgroud)

我会得到1,3,4和5.但这不是我想要的.

Alm*_* Do 5

您需要的查询是:

SELECT
  prodID
FROM
  t
WHERE
  propID IN (2,5)
GROUP BY
  prodID
HAVING
  COUNT(DISTINCT propID)=2
Run Code Online (Sandbox Code Playgroud)

另外,请注意,它是"正好2个属性".如果结果中需要"属性中至少'2'和'5',则更COUNT(DISTINCT propID)=2改为COUNT(DISTINCT propID)>=2.检查这个小提琴.