wpdb & wp_query 按 return 错误值排序

wpdb & wp_query order by return wrong values

我想从 wp_postmeta 按 DESC 顺序获得结果 values.i 使用此代码:

$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,则使用 meta_value 排序,那么值将是无序的。 (他们在这里订购的事实只是巧合)。

+ 0这里把字符串转成数值然后排序