表名:产品 列名和数据
type item
------ -------
Electronic Mobile
Mobile Smartphone
Smartphone Samsung
那么应该如何编写查询?我试过了
select * from products where (type='Electronic' and item='Mobile')
and (type='Smartphone' and item='Samsung')
答案 0 :(得分:2)
而不是AND
,您需要OR
。记录不能 电子/移动 和 智能手机/三星。
答案 1 :(得分:1)
在您撰写的查询中,括号无用 - 它们什么都不做。
不过,我认为你应该使用OR代替:
SELECT* FROM products WHERE (type='Electronic' AND item='Mobile') OR (type='Smartphone' AND item='Samsung');
但是这个查询在大表上表现不佳。所以,我有两个建议:
1)将'*'替换为您真正需要的列列表。
2)分成2个查询:
SELECT* FROM products WHERE type='Electronic' AND item='Mobile';
SELECT* FROM products WHERE type='Smartphone' AND item='Samsung';
...或者至少使用UNION
:
(SELECT* FROM products WHERE type='Electronic' AND item='Mobile')
UNION ALL
(SELECT* FROM products WHERE type='Smartphone' AND item='Samsung');