gpt4 book ai didi

mysql - 比较范围的算法

转载 作者:行者123 更新时间:2023-11-29 23:25:28 28 4
gpt4 key购买 nike

用户正在输入可接受的值范围,例如 30 - 60。

他想知道数据库中的哪些条目至少有一个在该输入范围内的值。因此,如果输入为 30 - 60,并且有一个条目为 59 - 100,则这是一个匹配。另外,匹配范围为 20 - 80、40 - 50 或 28 - 32。因为它们都至少有一个与输入范围匹配的值。

但是,如果输入范围为 30 - 60,则应拒绝输入 10 - 20 或 70 - 100。

范围保存在 MySQL 数据库中,有两个字段 - 最小值和最大值。

知道如何查询/比较这个吗?

最佳答案

您需要检查 WHERE 语句中的 3 个可能性:

1) 当表最小值在 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 开头结尾

1 30 60

2 0 60

3 50 60

问候,

关于mysql - 比较范围的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27005710/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com