【问题标题】:select database array value in interval在间隔中选择数据库数组值
【发布时间】:2015-02-20 12:30:19
【问题描述】:

我在一个房地产网站上工作,并且在数据库中有一个表,其中两列是“价格”和“表面”,其中表面是一个看起来像“100 200 350”的数组 - 这些是办公楼中可供出租的表面(我有更多的办公楼提供)。 现在,价格列以平方米为单位,如“12”(欧元/平方米)。

如果输入值 $min 和 $max 是每平方米,我已经有了一个搜索功能;

$result=mysql_query("SELECT * FROM `offers` WHERE price between $min and $max")

但如果用户搜索总价格范围,假设在 1000 到 2500 欧元之间,他应该在我的示例中找到具有 200 平方米表面阵列的报价(12 欧元 x 200 平方米= 2400 欧元)

我需要进行选择以查找给定价格范围内的优惠,例如:

$result=mysql_query("SELECT * FROM `offers` WHERE price * (explode somehow the surface array and get each value to compare) between $min and $max")

谢谢

【问题讨论】:

  • 你能告诉我价格是已经计算好了还是需要计算得到价格。
  • 没错,要获得更多答案,您必须编写一些查询或一些您已经尝试过的代码......
  • 总价不计算,表中只有每平方米的价格
  • 即使您知道如何获得总价,坦率地说,这也是一种使用 SQL 获得结果的可怕方式。如果可能的话,您应该尝试重新设计结构以存储表面。
  • 我确实存储了表面,但我不能将它们存储在单独的字段中,我这样做就像用空格分隔的文本 "surface1 surface2..."

标签: php mysql arrays select explode


【解决方案1】:

首先我要说的是,请确保您从“Surface”获取了一个数组。因为那看起来像一个字符串。

示例

$surface = array('100', '80' ,'200', '350', '10');
$query = 'SELECT * FROM mytable WHERE price_range IN (' .implode($surface, ', '). ' )';

【讨论】:

    猜你喜欢
    • 2017-12-25
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多