首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于权重范围的mysql计费查询

基于权重范围的mysql计费查询
EN

Stack Overflow用户
提问于 2014-05-23 22:52:02
回答 1查看 171关注 0票数 0

我得到了下表,它用于根据重量范围计算电荷

代码语言:javascript
运行
复制
Charge    Weight
1         0.5
2         1
3         2
4         5

我想计算一下一个重2.5的盒子的电荷,

代码语言:javascript
运行
复制
select charge from charge_table where weight > 2.5 limit 1;

或者应该使用此选项,但它会复制数据?

代码语言:javascript
运行
复制
Charge    min    max
1         0      0.5
2         0.5    1
3         1      2
4         2      5

然后使用以下查询

代码语言:javascript
运行
复制
select * from charge_table where min > 2.5 and max <= 2.5;

建立数据库的理想方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-23 22:57:06

考虑第一种方法。正确的查询是:

代码语言:javascript
运行
复制
select charge
from charge_table
where weight > 2.5
order by weight desc
limit 1;

您需要在charge_table(weight, charge)上建立一个索引。索引的一个明智的用途是查找值2.5,然后找到它旁边的第一个值。

使用第二种方法,查询是正确的。它可以在min/max上使用索引。然而,由于不平等,索引的使用可能不那么有效。为了达到同等的效率,您可以:

代码语言:javascript
运行
复制
select *
from charge_table
where min > 2.5 and max <= 2.5
limit 1;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23839406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档