表t:
类型(col1)||值(col2)
5(Col1)的值为73(Col2),
6(Col1)的值为80(Col2),
7(Col1)的值为65(Col2),
我想要col 1中所有值(col 2)等于73和80的类型的列表。
我尝试做:
SELECT `type` FROM t
WHERE `value` = 73
AND `value` = 80
在db.execute()调用之后,我只是返回一个列表[]。 感谢任何帮助
答案 0 :(得分:2)
如果您想同时使用两个type
的{{1}},则需要比较不同行上的值。聚合可以做到这一点:
value
如果数据可以重复,则只需要SELECT `type`
FROM t
WHERE `value` IN (73, 80)
GROUP BY type
HAVING COUNT(DISTINCT type) = 2;
。如果无法做到这一点,请改用COUNT(DISTINCT)
。
答案 1 :(得分:1)
我想要列1的所有类型(列2的值分别等于73和80)的列表。
您对记录的条件检查具有两者值73和80,它们不可能成功。
您希望使用OR
:
SELECT `type` FROM t WHERE `value` = 73 OR `value` = 80
您可以使用IN
SELECT `type` FROM t WHERE `value` IN (73, 80)