【发布时间】:2014-12-20 09:59:54
【问题描述】:
假设我有一个名为条件的示例表:
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 表以实现我的目标?
【问题讨论】:
-
哪个是关键字段?如果您正在寻找一种编写查询的优雅方式 - 首先在您的表中添加一个主键字段。
-
你比较条件到是什么?