首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >额外的字段

问额外的字段
EN

Stack Overflow用户
提问于 2015-06-08 06:53:43
回答 2查看 52关注 0票数 0

我试图添加另一个地方的质疑,但没有任何joy在这里。

我有一个包含三个字段的表单: price、min_price和max_price。

我增加了这一行:

代码语言:javascript
复制
WHERE 'price' BETWEEN 'property_min_price' AND 'property_max_price'

这在我看来是合乎逻辑的,但不起作用。有小费吗?谢谢。

代码语言:javascript
复制
/**
* Set the Query
*/
private function setQuery()
{
    $sql = "
        SELECT 
        p.post_title AS title,
        p.ID AS id," .
        $this->sqlFieldVars() . "
        lat.meta_value AS latitude,
        lng.meta_value AS longitude,
        ( " . $this->query_data['diameter'] . " * acos( cos( radians(@origlat) ) * cos( radians( lat.meta_value ) ) 
        * cos( radians( lng.meta_value ) - radians(@origlng) ) + sin( radians(@origlat) ) * sin(radians(lat.meta_value)) ) )
        AS distance
        FROM " . $this->query_data['post_table'] . " AS p
        LEFT JOIN " . $this->query_data['meta_table'] . " AS lat
        ON p.ID = lat.post_id AND lat.meta_key = '" . $this->query_data['lat_field'] . "'
        LEFT JOIN " . $this->query_data['meta_table'] . " AS lng
        ON p.ID = lng.post_id AND lng.meta_key = '" . $this->query_data['lng_field'] . "'" . 
        $this->sqlFieldJoins() . "      
        WHERE lat.meta_value
            BETWEEN @origlat - (@distance / @dist_unit)
            AND @origlat + (@distance / @dist_unit)
        AND lng.meta_value
            BETWEEN @origlng - (@distance / (@dist_unit * cos(radians(@origlat))))
            AND @origlng + (@distance / (@dist_unit * cos(radians(@origlat))))
        AND `post_type` = '" . $this->query_data['post_type'] . "'
        AND `post_status` = 'publish'
        WHERE 'price' BETWEEN 'property_min_price' AND 'property_max_price'
        HAVING distance < @distance
        ORDER BY distance\n" . 
        $this->sqlLimit() . ";";
    $this->sql = $sql;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-08 06:59:59

只能有一个WHERE子句。若要向现有的WHERE添加另一个条件,请使用AND

代码语言:javascript
复制
... AND `post_status` = 'publish'
    AND `price` BETWEEN 'property_min_price' AND 'property_max_price' ...

另外,我想,后排--而不是单引号--应该用在列名上。(但我不是MySQL的人,所以我不确定.)

票数 1
EN

Stack Overflow用户

发布于 2015-06-08 06:59:57

​

通常,在SQL字符串末尾只有一个WHERE语句。我注意到您有几个联接,后面跟着一个WHERE语句,紧接着是第二个WHERE语句。

你有没有试过把你的第二个位置改为一个和?

​

代码语言:javascript
复制
     AND `post_status` = 'publish'

和 'property_min_price‘和property_max_price之间的’价格‘

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30702807

复制
相关文章

相似问题

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