所以我试图从数据库中获取所有帖子并订购它们但我被卡住了。 我想订购最喜欢的帖子 - >不喜欢 - >最不喜欢的。
问题是有些帖子出现在wti_like_post
表中,有些则不出现。所以我不确定如何订购它们,通常我会使用像ORDER BY lp.value DESC
这是我的查询:
$querystr = "SELECT DISTINCT {$wpdb->prefix}posts.ID, {$wpdb->prefix}posts.post_title, {$wpdb->prefix}posts.post_excerpt, {$wpdb->prefix}posts.guid, {$wpdb->prefix}posts.post_author
FROM {$wpdb->prefix}posts
LEFT JOIN {$wpdb->prefix}term_relationships rel ON rel.object_id = {$wpdb->prefix}posts.ID
LEFT JOIN {$wpdb->prefix}term_taxonomy tax ON tax.term_taxonomy_id = rel.term_taxonomy_id
LEFT JOIN {$wpdb->prefix}terms t ON t.term_id = tax.term_id
LEFT JOIN {$wpdb->prefix}wti_like_post lp ON lp.post_id = {$wpdb->prefix}posts.ID
WHERE t.term_id = " . $_SESSION['pageCategory'] . "
AND {$wpdb->prefix}posts.post_type = 'post'
AND post_status = 'publish'
ORDER BY (lp.value <= 0) DESC, ({$wpdb->prefix}posts.ID != lp.post_id) DESC, (lp.value > 0) DESC
LIMIT $limit OFFSET $offset
";
到目前为止,我已尝试过在S.O上找到的解决方案,但似乎没有任何效果。
我尝试过的其中一个解决方案建议使用类似ORDER BY (lp.value <= 0) DESC, ({$wpdb->prefix}posts.ID != lp.post_id) DESC, (lp.value > 0) DESC
之类的内容,但它不起作用。
我还要提到我想要获得的很多帖子都没有链接到wti_like_post
表。
这是wti_like_post表的屏幕截图,它将喜欢/不喜欢的帖子链接到数据库中的wordpress posts表。
关于如何解决这个问题的任何想法。
干杯
答案 0 :(得分:1)
到
最喜欢的订单 - &gt;不喜欢 - &gt;最不喜欢的
你应该ORDER BY lp.value DESC