【问题标题】:Select number from a range从范围中选择数字
【发布时间】:2011-12-21 04:30:20
【问题描述】:

我有一个具体问题,我不知道如何解决。

我有一个结构的数据库:

ID NAME    MIN_VALUE    MAX_VALUE    PERCENT
1  Name1   0            500          40
2  Name2   501          5000         30
3  Name4   5001         5000000      20

现在的问题是,如果搜索字符串是 1021(所以它在 501 和 5000 之间,我需要在某个数字上添加 30%),我如何从这个数据库中选择“PERCENT”

我试过类似的东西:

SELECT * FROM DB WHERE min_value < STRING < max_value

但它不起作用。

这可以用 MySQL 完成还是我应该使用 PHP。但我只是不知道如何解决这个问题。

致以诚挚的问候,

【问题讨论】:

    标签: php mysql codeigniter select foreach


    【解决方案1】:

    你需要使用Betweenhttp://www.w3schools.com/sql/sql_between.asp

    SELECT percent FROM table WHERE YOUR_VALUE BETWEEN min_value AND max_value
    

    【讨论】:

    • BETWEEN 包含端点,但问题状态为min_value &lt; STRING &lt; max_value,表示应排除端点。
    【解决方案2】:
    SELECT * FROM DB.table1 `
    WHERE floor(1021*1.30) BETWEEN min_value+1 AND max_value-1 
    

    请记住BETWEEN 是包罗万象的,所以这段代码相当于:

    SELECT * FROM DB.table1 
    WHERE floor(1021*1.30) >= (min_value+1) AND floor(1021*1.30) <= (max_value -1)
    

    【讨论】:

    • BETWEEN 包含端点,但问题状态为min_value &lt; STRING &lt; max_value,表示应排除端点。
    • @JoeStefanelli,我确实注意到了这一点,但更新了问题以使其更加清晰。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2015-01-17
    相关资源
    最近更新 更多