-1

表名:products 列名和数据

type        item       
------      -------  
Electronic  Mobile
Mobile      Smartphone
Smartphone  Samsung   

那么查询应该怎么写呢?我试过了

select * from products where (type='Electronic' and item='Mobile') 
    and (type='Smartphone' and item='Samsung')
4

2 回答 2

2

而不是AND,你需要OR. 记录不能同时是电子/移动智能手机/三星。

于 2013-05-22T14:46:48.233 回答
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';

...或至少使用 a UNION

(SELECT* FROM products WHERE type='Electronic' AND item='Mobile')
UNION ALL
(SELECT* FROM products WHERE type='Smartphone' AND item='Samsung');
于 2013-05-22T15:47:50.997 回答