我正在尝试根据名为“点”的元键显示所有用户,如下所示:

$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_value 等于 1 到 ∞ 的数字。那么,我应该如何让它工作?谢谢。

PS:这是输出:
Array ( [0] => 1 [1] => 2 [2] => 4 )

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

最佳答案

SELECT user_id, meta_value FROM $wpdb->usermeta WHERE meta_key = 'points' ORDER BY CAST(meta_value AS SIGNED) DESC LIMIT
CAST(meta_value AS SIGNED) 将从 LONGTEXT 转换为 INT。它现在有效。

关于Wordpress $wpdb->usermeta 按 meta_value 排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4256271/

10-13 01:15