Mysql数据库中SELECT语句的WHERE条件中AND和OR之间的区别?

时间:2015-05-05 03:04:20

标签: mysql

我有一个名为employee的数据库表,当像这样检索员工的名字时

SELECT * FROM employee WHERE Fname ='jack' AND Fname ='john';

此查询返回一个空集。尝试使用像{/ p>这样的OR条件查询数据库

SELECT * FROM employee WHERE Fname ='jack' OR Fname = 'John';

查询返回employee表中jack和john的所有字段。我对AND运算符的理解是1 and 1 is true,其中Jack和John在我的表中,它应该使用AND运算符从employee表中返回jack和john的字段。我是否允许在一张桌子上使用AND条件,我是否误解了这个概念。请一些好建议!

4 个答案:

答案 0 :(得分:4)

条件Fname ='jack' AND Fname ='john'表示查询将匹配Fname同时为'jack''john'的每一行。由于单个列不能同时为两个不同的值,因此不会匹配任何行。

答案 1 :(得分:2)

WHERE Fname ='jack' AND Fname ='john'会返回一个空集,因为没有记录Fname是' jack'和' john'。 ' jack<> '约翰&#39 ;.如果您想在Fname可以是jackjohn时返回记录,请使用...WHERE Fname ='jack' OR Fname ='john'

答案 2 :(得分:2)

您在WHERE子句中所写的内容是条件。写Fname = 'jack' AND Fname = 'john'寻找名字为“jack”且同时为“john”的人。但你想要的是名字是“jack”“john”的人。

答案 3 :(得分:1)

你想要的是or因为Fname不能同时是杰克和约翰

SELECT * FROM employee WHERE Fname ='jack' or Fname ='john';