我觉得这应该很简单,但我被卡住了。这是我的数据库中的内容
id field_value
----------------
41 Blue
42 Blue
43 Blue
43 Sweet
46 Blue
47 Sweet
我需要选择只有$colour = blue AND $taste = sweet
的字段。基本上我需要获取 43 的 id,因为它同时具有蓝色和甜味。我该怎么做?
你通常会像这样测试它:
select id
from table1
where field_value in ('Blue', 'Sweet')
group by id
having count (distinct field_value) = 2
= 2
是列表中in ()
项数。
查看测试@Sql Fiddle。
如果我
理解正确;像这样:
$colour = (!isset($_GET['colour']) || empty($_GET['colour'])) ? '' : $_GET['colour'];
$taste = (!isset($_GET['taste']) || empty($_GET['taste'])) ? '' : $_GET['taste'];
$query = "SELECT * FROM table WHERE (parameter = '$colour') AND (parameter = '$taste')";
在查询中使用查询。类似的东西;
SELECT id
FROM table
WHERE field_value = 'Blue'
AND
id IN (SELECT id
FROM table
WHERE field_value = 'Sweet')
GROUP BY id