私は、次の表があります。MySQLのクエリは、最大値と最小値を制限する
INSERT INTO `test_table` (`id`, `x`, `y`) VALUES (1, 0, 10), (2, 6, 10),
(3, 9, 10), (4, 2, 9), (5, 4, 9), (6, 3, 8), (7, 7, 8), (8, 9, 8),
(9, 0, 7), (10, 2, 7), (11, 5, 7), (12, 10, 7), (13, 2, 6), (14, 7, 6),
(15, 0, 5), (16, 4, 5), (17, 9, 5), (18, 1, 4), (19, 3, 4), (20, 5, 4),
(21, 10, 4), (22, 8, 3), (23, 3, 2), (24, 6, 2), (25, 2, 1), (26, 8, 1),
(27, 0, 0), (28, 5, 0), (29, 6, 0), (30, 10, 0);
をし、それは以下の画像を表す:
赤やピンク、細胞内の数字が表すの "これらのセルの座標は「x」および「y」である。
私がしなければならないことは、灰色の四角形内の10個のセルを除くすべてのセル(赤いセルのみ)を表示するためのクエリを出すことだけです。
SELECT * FROM `test_table` WHERE
x between 0 and 10 and
x not between 2 and 8 and
y between 0 and 10 and
y not between 2 and 7
order by id ASC
LIMIT 30
グリッドが怒鳴る0と両方向(画像に表示されない)で10を超えていることを想像;:
は、これまでのところ私は、これは持っていますクエリの制限が多すぎる必要があります。とにかく、出力は、私が隅(緑色の領域内のもの)のセルを与えるだけなので、出力は必要ありません。
もう1つの方法はこのクエリを減算することです:この1から
SELECT * FROM `test_table` WHERE
x between 2 and 8 and
y between 2 and 7
order by id ASC
LIMIT 30
:
SELECT * FROM `test_table` WHERE
x between 0 and 10 and
y between 0 and 10
order by id ASC
LIMIT 30
...しかし、もう一度。私はそれを行うことができません:(
ありがとう、私の人生を救う!私はそれが本当に簡単なものだったことを知っていた! – cronos