2017-06-21 117 views
1

代码:mysql查询显示错误的数据?

select * from colleges where stateid = '2' and courses like '%,BDes,%' or courses like '%,MDes,%' or courses like '%,PHDDesign,%' order by priority desc 

使用此查询我希望那些有STATEID是2学院和LIKE '%溴二苯醚,%' 的课程或课程LIKE '%,MDES,%' 或课程LIKE“%,PHDDesign ,%' 但它显示错误的数据。我做错了,请帮助我?

谢谢

+0

你得到的输出是什么? –

回答

4

您必须添加brakets角落找寻或操作数:

select * from colleges 
where stateid = '2' and (courses like '%,BDes,%' or courses like '%,MDes,%' or courses like '%,PHDDesign,%') order by priority desc 

但据我所知以正确的方式你的SQL,您存储数据为CSV,这是非常糟糕的数据库设计。

0

您需要包围不同的条件brakets您or条件:

select * from colleges where 
     stateid = '2' and 
     (
     courses like '%,BDes,%' or 
     courses like '%,MDes,%' or 
     courses like '%,PHDDesign,%' 
    ) 
order by priority desc 
0

你的第一个条件使用ANDOR条件。因此,所有OR条件必须在括号内包装为

select * from colleges 
where stateid = 2 and (courses like '%,BDes,%' or courses like '%,MDes,%' or courses like '%,PHDDesign,%') order by priority desc 

,是有其数据类型为CHAR/VARCHAR /文字的id列。如果没有,那么不需要在报价单内输入你的ID