2012-04-23 85 views
0

我有一个名为optima的表,有几个字段,我需要做一个查询,将返回结果field1 = a和field2 = bMySQL:如何从两个领域进行搜索?

表例如

F1 F2 
_____ 
a z 
v a 
a b 
b a 

结果必然是:

a b 

我试图让查询像

SELECT * FROM `optima` WHERE `F1` LIKE 'a' AND `F2` LIKE 'b'; 

但它返回我什么。

+0

你真的需要学习SQL基础知识。 – 2012-04-23 13:46:59

+0

F1和F2的列类型(和长度)是什么? – 2012-04-23 14:01:26

+0

反引号或反引号偶尔是必要的,但你应该避免他们不在的地方。表名不需要反引号;列名可能需要反引号的唯一原因是因为它们是大写的,并且在创建表时被反引号括起来。 – 2012-04-23 14:02:28

回答

2

精确匹配,使用=操作,例如:

select * 
from `optima` 
where `F1` = 'a' and `F2` = 'b'; 
+0

你有背痛吗? – Bohemian 2012-04-23 13:58:29

+0

我认为在这种情况下'LIKE'更准确,因为它按字符进行比较并考虑尾随空格。虽然,'='可能会更好,因为尾随空格将被忽略,这可能是问题所在。 – 2012-04-23 13:59:33

+0

以及如果我需要搜索类似这样的内容:'a,b%'与'a,bc'中的表?所以只需使用'like',而不是'='? – 2012-04-23 14:07:31