Странная проблема с orber by, внутреннее соединение в запросе WordPress - PullRequest
1 голос
/ 11 декабря 2010

Я работаю над пользовательским плагином в WordPress. У меня странная проблема с одним sql.

SQL:

SELECT SQL_CALC_FOUND_ROWS wp_posts. *
FROM wp_posts
INNER JOIN wp_term_relationships 
ON ( wp_posts.ID = wp_term_relationships.object_id )
INNER JOIN wp_term_taxonomy 
ON ( wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id )
WHERE 1 =1
AND wp_term_taxonomy.taxonomy = 'category'
AND wp_term_taxonomy.term_id IN ('23')
AND (
wp_posts.post_author =1
)
AND wp_posts.post_type = 'post'
AND (
wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private'
)
GROUP BY wp_posts.ID
ORDER BY `wp_posts`.`as_stats_rating` DESC
LIMIT 0 , 30 

Возвращает правильные данные, но не сортирует результаты в соответствии с as_stats_rating. Я в тупике. Кто-нибудь знает, что я делаю не так?

Редактировать 1: Обновить

Вот структура wp_posts: alt text


Пример результата:

ID  as_stats_rating
1221   8
1222   10

Все поля в результатах выборки:
ID post_author post_date post_date_gmt post_content post_title post_excerpt post_status comment_status ping_status post_password post_name to_ping pinged post_modified post_modified_gmt post_content_filtered post_parent guid


Кстати, проблема не только в 'order by wp_posts.as_stats_rating', 'order by wp_posts.as_stats_numviews'. (просто чтобы прояснить, если вам интересно, что as_stats_rating имеет тип varchar)

1 Ответ

1 голос
/ 11 декабря 2010

Есть ли вероятность, что поле as_stats_rating является строковым (char / text) типом данных, а не числовым (float / int / decimal) типом данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...