我想写一个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。 请帮帮我。
答案 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%'