关于AND和OR组合的MySql查询

时间:2012-03-09 19:54:11

标签: mysql

我想写一个MySql查询,我希望使用AND和OR的组合。我有6个属性,其中我想要一个String出现,并且有一个属性,其中应该出现一个强制线程。

我的命令看起来像这样。

Select * from Students where roll_no like '__2011%' and subject1 ='maths' or subject2='maths' or subject3='maths' or subject4='maths' or subject5='maths' or subject6='maths';

我希望'数学'出现在至少一个主题属性中。与该卷一起,不应该在查询中指定2011。 请帮帮我。

3 个答案:

答案 0 :(得分:7)

Select * from Students where roll_no like '__2011%' and (subject1 ='maths' or subject2='maths' or subject3='maths' or subject4='maths' or subject5='maths' or subject6='maths');

答案 1 :(得分:3)

当您有多个or条件时,in是一种更清晰的处理方法:

Select * 
from Students 
where 
    roll_no like '__2011%' and 
    'maths' in (subject1, subject2, subject3, subject4, subject5, subject6);

答案 2 :(得分:2)

这可能比多个“或”

快一点
select * from students where roll_no like '__2011%' and
 concat_ws(' ',subject1,subject2,subject3,subject4,subject5,subject6) like '%maths%'