如何使用!=在SELECT语句中使用OR

时间:2017-06-11 22:51:03

标签: php mysqli

我有一份申请人名单,其中包括两个字段:accept和waitlist。对于每个字段accept和waitlist,可能的值为空(尚未考虑),是(已接受或等待)或否(已拒绝)。

我想提取一个显示以显示申请人列表,其中waitlist和accept中的任何一个或两个都设置为“是”。以下完全符合我的要求。

$query = "SELECT * FROM applicants WHERE waitlist = 'Yes' OR accept = 'Yes' ORDER BY lname,fname ASC";

我还想显示那些尚未被考虑或被拒绝的申请人名单,因此waitlist或accept的值为空或“否”。以下,似乎是对第一个陈述的明显修改,并没有消除任何人。

$query = "SELECT * FROM applicants WHERE accept != 'Yes' OR waitlist != 'Yes' ORDER BY lname,fname ASC"; 

如果我删除了OR语句,我至少可以看到一些未被接受的列表。修改查询以使选择为正,即

$query = "SELECT * FROM applicants WHERE accept = 'No' OR accept = '' OR waitlist = 'No OR waitlist = '' ORDER BY lname,fname ASC";

适用于接受或等候名单,但如果包含这两个字段,则只会显示所有申请人。

我确信以前曾经问过这个问题,但我找不到它。

1 个答案:

答案 0 :(得分:0)

问题是当您想使用AND时使用OR。

SELECT * FROM applicants WHERE accept != 'Yes' OR waitlist != 'Yes';
  

我接受了,我不在等候名单上。 - > waitinglist ==''所以我回来了

     

我在等候名单上,我还没被接受。 - >接受==''所以我也重新调整了

     

我不在等候名单上,我还没有接受。 - >接受==''和等待名单==''所以我也重新调整了

而是使用AND

SELECT * FROM applicants WHERE accept != 'Yes' AND waitlist != 'Yes';

案例:

  

我接受了,我不在等候名单上。 - > waitinglist ==''所以我没有回来

     

我在等候名单上,我还没被接受。 - >接受==''所以我也没有重新调整

     

我不在等候名单上,我还没有接受。 - >接受==''和等待名单==''所以我重新调整了