2012-07-31 77 views
1

這是查詢遊戲應用程序以獲取不包括敵人看不到的位置的敵人目標列表。這是我的查詢的簡化版本,以針對我的具體問題。特定mysql查詢的問題

SELECT * FROM `game_moblist` WHERE (posx!=0 AND posy!=0) AND (posx!=1100 AND posy!=220) 

POSX是x座標銘文是Y座標

我正在寫一個循環,排除無法看到任何瓷磚 我看到的問題是,它彷彿括號AREN處理」那裏。所有posx = 1100被排除在外,而不是有序對(1100,220)什麼是我想要做的正確語法?我想到的唯一解決方案是將這兩個數字組合成一個唯一的數字,但我寧願學習新的東西。

+1

不知道就這麼簡單,但要注意,'(POSX = 1100和銘文= 220! )'不同於'(!(posx = 1100 AND posy = 220))' – neokio 2012-07-31 17:56:17

+0

@neokio:我想你已經解決了這個問題。發佈它作爲答案,我會刪除我的 – 2012-07-31 18:06:43

+0

@ypercube thx的報價,但你更徹底:)也,你的'NOT IN'查詢是真棒。 – neokio 2012-08-01 04:07:26

回答

3

我想你的意思:

WHERE NOT (posx=0 AND posy=0) 
    AND NOT (posx=1100 AND posy=220) 

這也可以寫成:

WHERE (posx, posy) NOT IN ((0, 0), (1100, 200)) 
+0

+1 TIL如何做一個多列'IN' /'NOT IN'的比較! = D – 2012-07-31 18:07:29

+0

耶正是我所喜歡的東西。 – Shawn 2012-07-31 18:17:15