1

这是游戏应用程序的查询,以获取敌人的目标列表,其中不包括敌人看不到的位置。这是针对我的特定问题的查询的简化版本。

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

posx 是 x 坐标 posy 是 y 坐标

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

4

1 回答 1

3

我想你的意思是:

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

也可以改写为:

WHERE (posx, posy) NOT IN ((0, 0), (1100, 200)) 
于 2012-07-31T18:02:55.740 回答