MySQL查询:多次搜索同一列

时间:2013-05-22 14:45:36

标签: mysql

表名:产品 列名和数据

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

那么应该如何编写查询?我试过了

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

2 个答案:

答案 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');