繁体   English   中英

wpdb和wp_query顺序返回错误值

[英]wpdb & wp_query order by return wrong values

我想通过DEC从wp_postmeta订单中获取结果的值。我使用以下代码:

$top_query = $wpdb->get_results("SELECT meta_value FROM wp_postmeta WHERE meta_key = 'sd_top_numbers' ORDER BY meta_value DESC");
foreach ($top_query as $details) {
    echo $details->meta_value;
    echo '<br/>';
}

输出!

8800
8900
9600
9700
15700
16200

我也尝试wp_query但结果相同。

$top_query = $wpdb->get_results("SELECT meta_value FROM wp_postmeta WHERE meta_key = 'sd_top_numbers' ORDER BY meta_value + 0 DESC");

如果您按meta_key排序,并且所有记录的meta_key等于sd_top_numbers,请使用order by meta_value ,那么值将是无序的。 (它们在这里被排序的事实只是巧合)。

+ 0在这里将字符串转换为数值,然后对其进行排序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM