2015-04-17 82 views
0

不正確的結果當運行下面的查詢:的MySQL返回由INT列

SELECT id,name,verified FROM servers WHERE verified=1 AND enabled=1 AND suspended=0 AND name LIKE '%.net%' || ip LIKE '%.net%' ORDER BY score DESC 

MySQL正在返回不正確的結果。這是輸入的結果:

+----+-------------------+----------+ 
| ID |  name  | verified | 
+----+-------------------+----------+ 
| 34 | BlockedUp   |  1 | 
| 8 | aliacraft   |  1 | 
| 27 | Limitless MC  |  1 | 
| 31 | OPCraft   |  1 | 
| 33 | LoneWolves Prison |  1 | 
| 47 | purpleprison.net |  0 | 
+----+-------------------+----------+ 

這可能是什麼原因?最後一行顯然不符合verify = 1的要求。

+1

您需要組中的Where條件 – Cherry

+1

@詹姆斯的OR「%.NET%」的條件是彼此獨立的條件,除非你有他們包裝在()的你說查詢說(啓用= 1和暫停= 0和名稱like.net)或(IP像'%.net%')什麼是ID 47的IP?我猜它有.net。 – xQbert

+0

謝謝大家,我已經用Abhik的答案解決了這個問題。 – James

回答

4

您需要在大括號移動

AND name LIKE '%.net%' || ip LIKE '%.net%' 

AND (name LIKE '%.net%' or ip LIKE '%.net%')