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)无法工作,因为这个条件不可能为真。是的,就是这样。谢谢你是的,就是这个。非常感谢。