2010-11-08 2 views
0

Привет, я пытаюсь сделать запрос к базе данных wordpress usermeta, чтобы получить всех пользователей, у которых есть собственное имя мета и имя. Пользовательское имя/значение - это оценка (целое число). Мне нужно вернуть пользователям самый высокий балл и ограничить запрос до 5 результатов.MYSQL Query для сортировки wordpress usermeta data

У меня есть рабочее заявление, но оно действительно хочет отсортировать их должным образом.

$gather_top_users = "SELECT * FROM ".$wpdb->prefix."usermeta WHERE meta_key='points' ORDER BY meta_value DESC LIMIT 5 "; 

Любые идеи, почему это неправильно сортирует их в массиве?

ответ

1

Вы можете бросить его в целое число первых т.е.

ORDER BY CAST(meta_value AS SIGNED) DESC 

См CAST()

1

Привет @estern:

WordPress' meta_value поле longtext поэтому он не сортирует в качестве номера, если вы не конвертируете его в один, поэтому измените свой ORDER BY следующим образом:

ORDER BY meta_value DESC 

Для этого:

ORDER BY CONVERT(meta_value,UNSIGNED) DESC 

Надеется, что это помогает.

-Mike

P.S. Возможно, вам захочется проверить сайт сестры StackOverflow WordPress Answers в следующий раз, когда вам понадобится помощь в WordPress. Множество энтузиастов WordPress находятся под рукой, чтобы ответить на ваши вопросы WordPress.

Смежные вопросы