Php 如何使用和条件选择几个值?

Php 如何使用和条件选择几个值?,php,mysql,database,mysqli,Php,Mysql,Database,Mysqli,我有一个例子 当我做的时候,我需要空的结果 SELECT * FROM prods WHERE prod_id = 3 and (fet_id = 1 and fet_id = 5) 但该代码不起作用(fet_id=1和fet_id=5)或(fet_id=1和fet_id=3) “Where in”是最好的方法,但我需要“Where in”(1、2和3) 默认情况下,“其中”作为(1或2或3) 当我选择fet_id=1和fet_id=3时,我需要两个结果 当我选择fet_id=1和fet_i

我有一个例子 当我做的时候,我需要空的结果

SELECT * FROM prods 
WHERE prod_id = 3 and (fet_id = 1 and fet_id = 5)
但该代码不起作用(fet_id=1和fet_id=5)或
(fet_id=1和fet_id=3)
“Where in”是最好的方法,但我需要“Where in”(1、2和3)

默认情况下,
“其中”
作为
(1或2或3)

当我选择fet_id=1和fet_id=3时,我需要两个结果 当我选择fet_id=1和fet_id=5时,我不需要任何结果

SELECT prod_id FROM prods GROUP by prod_id
HAVING (SUM(fet_id=1)>0
AND SUM(fet_id=5)>0)
OR 
(SUM(fet_id=1)>0
AND SUM(fet_id=3)>0)
在筛选行的位置具有筛选器组。

您可能需要

SELECT prod_id FROM prods GROUP by prod_id
HAVING (SUM(fet_id=1)>0
AND SUM(fet_id=5)>0)
OR 
(SUM(fet_id=1)>0
AND SUM(fet_id=3)>0)
将筛选器组设置为筛选器行。

尝试以下操作:

SELECT p1.id AS id1, p2.id AS id2
FROM `prods` p1 LEFT JOIN `prods` p2 ON p1.`prod_id` =  p2.`prod_id`
WHERE p1.`fet_id` = '1' AND p2.`fet_id` = '3' 
输出

  id1   id2
  1      3
输入fet_id=1和fet_id=5

SELECT p1.id AS id1, p2.id AS id2
FROM `prods` p1 LEFT JOIN `prods` p2 ON p1.`prod_id` =  p2.`prod_id`
WHERE p1.`fet_id` = '1' AND p2.`fet_id` = '5' 
输出:无结果

尝试以下操作:

SELECT p1.id AS id1, p2.id AS id2
FROM `prods` p1 LEFT JOIN `prods` p2 ON p1.`prod_id` =  p2.`prod_id`
WHERE p1.`fet_id` = '1' AND p2.`fet_id` = '3' 
输出

  id1   id2
  1      3
输入fet_id=1和fet_id=5

SELECT p1.id AS id1, p2.id AS id2
FROM `prods` p1 LEFT JOIN `prods` p2 ON p1.`prod_id` =  p2.`prod_id`
WHERE p1.`fet_id` = '1' AND p2.`fet_id` = '5' 

输出:无结果

,如果需要两个以上的值,则另一个结果

SELECT res.* FROM (SELECT 3 as total,
(SELECT COUNT(*) FROM `prods` as t1 WHERE t1.`fet_id` = 1 OR  t1.`fet_id` = 2 OR t1.`fet_id` = 5) as current,
t2.*
FROM `prods` as t2 WHERE t2.`fet_id` in (1,2,5)) as res WHERE res.total = res.current

如果需要两个以上的值,则另一个

SELECT res.* FROM (SELECT 3 as total,
(SELECT COUNT(*) FROM `prods` as t1 WHERE t1.`fet_id` = 1 OR  t1.`fet_id` = 2 OR t1.`fet_id` = 5) as current,
t2.*
FROM `prods` as t2 WHERE t2.`fet_id` in (1,2,5)) as res WHERE res.total = res.current

fet_id=1和fet_id=5)无法工作,因为这个条件不可能为真。fet_id=1和fet_id=5)无法工作,因为这个条件不可能为真。是的,就是这样。谢谢你是的,就是这个。非常感谢。