Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress$wpdb->;usermeta按meta_值排序_Wordpress - Fatal编程技术网

Wordpress$wpdb->;usermeta按meta_值排序

Wordpress$wpdb->;usermeta按meta_值排序,wordpress,Wordpress,我试图根据一个称为“点”的元键显示所有用户,如下所示: $wpdb->get_col($wpdb->prepare(" SELECT user_id, meta_key = 'points', meta_value FROM $wpdb->usermeta ORDER BY meta_value DESC LIMIT $limit OFFSET {$paginate->offset()}")); 用户显示正确,但顺序不起作用,meta_值等于1到之间的数字∞. 那

我试图根据一个称为“点”的元键显示所有用户,如下所示:

$wpdb->get_col($wpdb->prepare("
SELECT user_id, meta_key = 'points', meta_value 
FROM $wpdb->usermeta 
ORDER BY meta_value DESC 
LIMIT $limit OFFSET {$paginate->offset()}"));
用户显示正确,但顺序不起作用,meta_值等于1到之间的数字∞. 那么,我应该如何让它工作呢?谢谢

PS:这是输出:

Array ( [0] => 1 [1] => 2 [2] => 4 ) 

所以我相信是按ID排序的。

如果我对mysql没有完全错的话,你必须在where子句中添加meta_key='points'。 将查询重写为:

选择用户id、元值
从$wpdb->usermeta
其中meta_key=‘points’
按元值描述排序
限制$LIMIT OFFSET{$paginate->OFFSET()}


CAST(meta_值作为符号)将从LONGTEXT转换为INT。它现在可以工作。

是的,这是正确的,但排序不起作用,因为meta_值设置为LONGTEXT,所以。。。我现在正在寻找解决办法。如果你知道一个,让我知道。谢谢
SELECT user_id, meta_value FROM $wpdb->usermeta WHERE meta_key = 'points' ORDER BY CAST(meta_value AS SIGNED) DESC LIMIT