用户正在输入一系列可接受的值,例如30 - 60。
他想知道数据库中的哪些条目在该输入范围内至少有一个值。因此,如果输入是30 - 60,并且有一个59 - 100的条目,那么这是一个匹配。匹配也是20 - 80,40-50或28 - 32.因为它们都至少有一个与输入范围相匹配的值。
但是,如果输入范围为30 - 60,则应拒绝输入10 - 20或70 - 100。
范围保存在MySQL数据库中,包含两个字段--min和max。
知道如何查询/比较这个吗?
答案 0 :(得分:0)
您需要使用BETWEEN
运算符
select * from table1 where values between 30 and 60;
(或)where values between 59 and 100;
您也可以使用>
和<
运算符来获得相同的评估
select * from table1 where values >= 30 and values <= 60;
如果是草莓在评论中指出的范围比较那么你可以检查
where 30 < 59 and 59 < 60 and 60 < 100;
答案 1 :(得分:0)
您需要在WHERE句子中检查3个可能性:
1)当表minvalue介于value1和value2之间时 2)当表maxvalue介于value1和value2之间时 3)当表minvalue低于value1且maxvalue大于value2
时例如:
构建数据库
create table demo (
id int,
beginning int,
ending int);
insert into demo(id,beginning,ending)
values (1,30,60);
insert into demo(id,beginning,ending)
values (2,0,60);
insert into demo(id,beginning,ending)
values (3,50,60);
insert into demo(id,beginning,ending)
values (4,60,100);
insert into demo(id,beginning,ending)
values (5,60,61);
<强>查询强>
SELECT *
FROM demo
WHERE beginning BETWEEN 50 AND 55
OR ending BETWEEN 50 AND 55
OR (beginning < 50 AND ending > 55)
<强>返回强>
ID BEGINNING ENDING
1 30 60
2 0 60
3 50 60
此致