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)ではありません。私がやろうとしていることの適切な構文は何ですか?私が考えた唯一の解決策は、2つの数字を組み合わせて一意の単一の数字にすることですが、むしろ新しいことを学びたいと思います。

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 に答える