【问题标题】:Search with range with overlap搜索范围重叠
【发布时间】:2020-10-14 08:47:36
【问题描述】:

我在 CodeIgniter 中开发了一个搜索表单,它可以根据选择框的范围返回结果。

我的问题是当范围重叠时,它没有考虑重叠并且没有返回正确的结果。

例如搜索范围是 0-5000 它应该带回最小值是结果在该范围内。

这是我的控制器代码

if ($this->input->post('sqft')) {
                $_SESSION['sqft'] = $this->input->post('sqft');
                $explodeSquare = explode("-", $this->input->post('sqft'));
                $minSqaure = $explodeSquare[0];
                $maxSqaure = $explodeSquare[1];
                $this->db->where('minsize >=', $minSqaure);
                $this->db->where('maxsize <=', $maxSqaure);
                $this->db->order_by('id','DESC');
            }

在 mysql 中,我有 300(最小值)到 8000(最大值)的项目,所以如果在 0-5000 之间搜索,那么它应该返回这个项目,因为最小值在最小大小范围内。

范围是处理这个问题的最佳方式吗?

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    如果你想检查重叠,那么逻辑应该是:

    $this->db->where('minsize <=', $maxSqaure);
    $this->db->where('maxsize >=', $minSqaure);
    

    【讨论】:

    • 这只会在范围之外搜索,所以不会起作用。
    • @user1857612 先测试再告诉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多