Допустим, у меня есть пример таблицы называются условиями:запрос, который проверяет, если соблюдены все условия
CREATE TABLE conditions (
id int NOT NULL,
age_from int,
age_to int,
height_from int,
height_to int,
PRIMARY KEY (id)
);
Я вставив пару условий:
INSERT INTO conditions (age_from, age_to, height_from, height_to)
VALUES (10, 14, NULL, 200);
INSERT INTO conditions (age_from, age_to, height_from, height_to)
VALUES (NULL, NULL, 170, 250);
В этих условиях человек с возрастом : 11 и высота: 180 соответствовали бы критериям, но человек с возрастом: 15 и высота: 169 - нет.
Итак, моя первая мысль - подсчитать все условия, которые удовлетворяются, и сравнить с общим количеством условий. Тот факт, что некоторые из этих условий могут быть NULL
, делает запрос немного сложным.
Что-то вдоль этих строк не будет работать, так как мне нужно будет проверить, являются ли конкретные условия NOT NULL
, а затем сравните, что сделало бы запрос довольно сложным.
WHERE age_from <= 11 AND age_to >= 11 -- or using BETWEEN
Есть ли более элегантный способ написать запрос или перестроить таблицу conditions
для достижения своей цели?
Что является ключевым полем? Если вы ищете элегантный способ написания запроса, сначала добавьте в таблицу поля первичного ключа. –
Вы сравниваете условия * с *? –