WordPress $ WPDB-> Usermeta Сортировать по Meta_Value
Вопрос
Я пытаюсь показать всех пользователей на основе Meta_Key под названием «точки», как это:
$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 Как подписано) будет скрыт от ongtext для INT. Это работает сейчас.
Другие советы
Если я не совсем ошибаюсь в MySQL, вы должны добавить meta_key = 'Точки' к предложению, где. Перепишите запрос:
Выберите user_id, meta_value
От $ wpdb-> usermeta
Где META_KEY = «точки»
Заказать Meta_Value Desc
Ограничение $ Confet Offset {$ Paginate-> Offset ()}
Не связан с StackOverflow