首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于圆的MySQL选择范围以适当的功率为10

问基于圆的MySQL选择范围以适当的功率为10
EN

Stack Overflow用户
提问于 2014-10-09 07:51:04
回答 3查看 149关注 0票数 0

我使用MySQL,我希望选择值(十进制),在这种情况下是工资范围。

我希望将基于舍入的薪资范围设置为输入变量的10的适当幂。

例如:

对于输入100000,我想选择value > 100000 AND value < 199999

对于输入20000,我想选择value > 20000 AND value < 29999

对于输入12345,我想选择value > 10000 AND value < 19999

对于输入1000,我想选择value > 1000 AND value < 1999

如何实现这一点(仅限于MySQL)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-09 08:22:06

我设法使这段代码正常工作,这产生了

工资100000值100000和199999

工资20000值20000和29999

工资23456值20000和29999

在这里看到它,http://sqlfiddle.com/#!2/d41d8/46326

代码语言:javascript
复制
SET @THE_SALARY = 100000;

SELECT FLOOR((@THE_SALARY / POW(10,CEIL(LOG10((@THE_SALARY)+1))-1)))*POW(10,CEIL(LOG10((@THE_SALARY)+1))-1), FLOOR((@THE_SALARY / POW(10,CEIL(LOG10((@THE_SALARY)+1))-1))+1)*POW(10,CEIL(LOG10((@THE_SALARY)+1))-1)-1

这样你就可以做到:

代码语言:javascript
复制
SET @THE_SALARY = 12345;
SELECT * FROM yourtable WHERE salary > FLOOR((@THE_SALARY / POW(10,CEIL(LOG10((@THE_SALARY)+1))-1)))*POW(10,CEIL(LOG10((@THE_SALARY)+1))-1) AND salary < FLOOR((@THE_SALARY / POW(10,CEIL(LOG10((@THE_SALARY)+1))-1))+1)*POW(10,CEIL(LOG10((@THE_SALARY)+1))-1)-1
票数 1
EN

Stack Overflow用户

发布于 2014-10-09 07:56:00

我对你问题的理解。

输入=152 345

代码语言:javascript
复制
       select * from TableName where value<19999 and value>10000

输入=152 345

代码语言:javascript
复制
       select * from TableName where value<29999 and value>20000
票数 1
EN

Stack Overflow用户

发布于 2014-10-09 07:55:39

试试这个:

代码语言:javascript
复制
 SELECT * FROM `table` WHERE `value` 


 BETWEEN value < 199,999 AND value > 100,000

或

代码语言:javascript
复制
SELECT * FROM table WHERE value < '199,999' AND `value > '100,000'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26273059

复制
相关文章

相似问题

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