特定的mysql查询问题

时间:2012-07-31 17:51:04

标签: mysql where

这是游戏应用程序的查询,以获取敌人的目标列表,其中排除了敌人无法看到的位置。这是我的查询的简化版本,以定位我的具体问题。

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

posx是x坐标posy是y坐标

我正在编写一个循环来排除任何无法看到的图块 我看到的问题是它被视为括号不在那里。排除所有posx = 1100而不是有序对(1100,220)我正在尝试做什么的正确语法是什么?我想到的唯一解决方案是将两个数字组合成一个唯一的单个数字,但我宁愿学习新的东西。

1 个答案:

答案 0 :(得分:3)

我认为你的意思是:

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

也可以改写为:

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