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