我使用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)?
发布于 2014-10-09 08:22:06
我设法使这段代码正常工作,这产生了
工资100000值100000和199999
工资20000值20000和29999
工资23456值20000和29999
在这里看到它,http://sqlfiddle.com/#!2/d41d8/46326
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这样你就可以做到:
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发布于 2014-10-09 07:56:00
我对你问题的理解。
输入=152 345
select * from TableName where value<19999 and value>10000输入=152 345
select * from TableName where value<29999 and value>20000发布于 2014-10-09 07:55:39
试试这个:
SELECT * FROM `table` WHERE `value`
BETWEEN value < 199,999 AND value > 100,000或
SELECT * FROM table WHERE value < '199,999' AND `value > '100,000'https://stackoverflow.com/questions/26273059
复制相似问题