首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对单个表中多行进行分组,并获取给定范围内的所有记录

如何对单个表中多行进行分组,并获取给定范围内的所有记录
EN

Stack Overflow用户
提问于 2019-04-22 03:29:13
回答 1查看 44关注 0票数 0

我想要所有价格在给定价格范围内的旅馆,从我旅馆的桌子。价格存储在四个不同的行中,如价格一股,价格两股,价格三股,价格更多的股票,

代码语言:javascript
复制
public function actionNearbyHostel($min,$max,$types,$lat,$long){   
    $latitude = $lat;
    $longitude = $long;
    $type = $types;
    $max_price = (int)$max;
    $min_price = (int)$min;
    $hostels = Hostels::find ()->select("*,(6371 * 
        acos(cos(radians({$latitude}))* 
        cos(radians(`lat`)) * cos(radians(`log`) - radians({$longitude})) + 
        sin(radians({$latitude})) * sin(radians(`lat`)))) AS distance")
            ->having("distance<:distance")
            ->addParams([ 
                ':distance' => 5 
            ])->where([
                'status' => Hostels::ACTIVE,
                'type' => $type
            ])->andWhere(['between','price_one_share',$min_price,$max_price])
    ->all();
    return $this->render('filterhostel',[
        'hostels' => $hostels,
    ]);
} 

这是我已经写好的动作

代码语言:javascript
复制
andWhere(['between','price_one_share',$min_price,$max_price])

像这样,我想包括剩下的三行并得到我的结果。

这是我的表行图像http://www.clipular.com/posts/4991398571671552?k=Lud1W4LGJe5hSxOsl2ao7VOGguI

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-23 21:57:59

在做了一些作业之后,我找到了答案

代码语言:javascript
复制
 public function actionNearbyHostel($min,$max,$types,$lat,$long){   
    $latitude = $lat;
    $longitude = $long;
    $type = $types;
    $max_price = (int)$max;
    $min_price = (int)$min;
    $hostels = Hostels::find ()->select("*,(6371 * acos(cos(radians({$latitude}))* 
    cos(radians(`lat`)) * cos(radians(`log`) - radians({$longitude})) + 
    sin(radians({$latitude})) * sin(radians(`lat`)))) AS distance")
    ->having("distance<:distance")
    ->addParams([ 
    ':distance' => 5 
    ])->where([
    'status' => Hostels::ACTIVE,
    'type' => $type
    ])->andWhere(['or',
    ['between','price_one_share',$min_price,$max_price],
    ['between','price_two_share',$min_price,$max_price],
    ['between','price_three_share',$min_price,$max_price],
    ['between','price_more_share',$min_price,$max_price]
    ])
    ->all();
    return $this->render('filterhostel',[
        'hostels' => $hostels,
    ]);
}  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55786014

复制
相关文章

相似问题

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