负数和正数之间的比较

时间:2018-03-26 作者:James George Dunn

我很难比较负数和正数。这段代码在两个正数之间工作正常,但在负数和正数之间工作正常。

这是我的“meta\\u查询”的一部分:

array_push($metaQuery,
    array(\'relation\' => \'AND\',
        array(
            \'key\' => \'longitude\',
            \'value\' => array($minlng, $maxlng),
            \'compare\' => \'BETWEEN\',
        ),
    )
);
例如,如果$minlng为-1.5,$maxlng为1.5。它将通过等于-3的值。

如果有帮助,下面是meta\\u查询的var\\u转储:

array(1) {
    [0]=>
    array(2) {
            ["relation"]=>
            string(3) "AND"
            [0]=>
            array(3) {
                    ["key"]=>
                    string(9) "longitude"
                    ["value"]=>
                    array(2) {
                            [0]=>
                            float(-0.989505008087)
                            [1]=>
                            float(1.31257480809)
                    }
                    ["compare"]=>
                    string(7) "BETWEEN"
            }
      }
}

2 个回复
SO网友:mmm

我尝试了以下代码:

$posts = get_posts([
    "post_type" => "CUSTOM_POST_TYPE",
    "meta_query" => [
        \'relation\' => \'AND\',
        [
            \'key\' => \'longitude\',
            \'value\' => [-0.9895, 1.3125],
            \'compare\' => \'BETWEEN\',
            "type" => "NUMERIC",
        ],
    ],
]);
当我删除时"type" => "NUMERIC", 我可以重现你的问题,因为比较是基于字符串的。

但在添加类型时NUMERIC, MySQL请求包含CAST(wp_postmeta.meta_value AS SIGNED) BETWEEN \'-0.9895\' AND \'1.3125\' 查询返回可预见的值。

SO网友:tinhbeng

如果您只使用"type" => "NUMBER", 它可以工作,但无效,因为它只需要整数部分进行比较。您可以用此代码替换它"type" => "DECIMAL(5,2)"// 5:integer part length, 2:Decimal part length.我用过它,它对我有用。

结束

相关推荐

making a search.php query

我正在尝试创建一个自定义搜索结果页面。我希望一次有6篇帖子,然后我要添加一个加载更多的按钮,可以加载更多的6篇帖子,以此类推。我希望页面处于引导网格布局中。每行2个立柱(col-md-6)。使用下面的代码,网页甚至不会显示出来。我是否需要向我的函数添加任何内容。php来实现这一点?有人能帮我吗?提前谢谢。<?php get_header(); $the_query = new WP_Query( [ \'posts_per_page\' =>