所以我想将游戏地图存储到我的数据库中,其中包括星系,系统和位置。我的表看起来像这样:
id | galaxy | system | position | other information ...
1 | 1 | 1 | 1 | blahblah
2 | 1 | 1 | 2 | blahblah
3 | 1 | 1 | 3 | blahblah
4 | 1 | 1 | 4 | blahblah
5 | 2 | 111 | 6 | blahblah
我想要做的是选择多个带坐标的行,让我们说WHERE galaxy = 1 AND system = 1 AND position = 1
和WHERE galaxy = 1 AND system = 1 AND position = 2
。它应该可能以某种方式,但我找不到解决方案,或者我只是用错误的关键字搜索,因为我真的不知道如何表达我的问题。
答案 0 :(得分:1)
有几种方法可以过滤。尝试理解in
子句以及如何使用or
和braces()
方法1
WHERE (galaxy = 1 AND system = 1 AND position = 1)
or (galaxy = 1 AND system = 1 AND position = 2)
方法2
WHERE galaxy = 1 AND system = 1 AND position in (1,2)
答案 1 :(得分:1)
@Ivar是正确的:
WHERE
(galaxy = 1 AND system = 1 AND position = 1) OR
(galaxy = 1 AND system = 1 AND position = 2)
是一般表格
在这个确切的示例中,您可以OR
positions
:
WHERE
galaxy = 1 AND system = 1 AND position IN (1,2)
了解AND
和OR
条件对您有好处。
答案 2 :(得分:0)
如果你只是寻找那些字段具有相同值的所有行,这也会有效并且更容易:
SELECT * FROM `test` WHERE `galaxy` = `system` = `position`;
答案 3 :(得分:-1)
您可以使用IN()函数
例如:
AllowCurrencySymbol
这样做是为了从表中选择galaxy等于'1'且系统等于'1'且位置等于'1'或'2'的所有行