2017-06-21 124 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