2015-06-08 43 views
0

我使用下列操作以隨機排序在WordPress的查詢:mySQL的隨機順序查詢與WordPress的1個例外

$args_projekte = array(
     'post_type' => 'projekt', 
     'posts_per_page' => 18, 
     'orderby' => 'rand', 
     ); 
$query_projekte = new WP_Query($args_projekte); 

然而,我需要ID爲一個記錄= 191總是被定位爲第五記錄集在我的隨機查詢結果中。

這可能嗎?非常感謝您的幫助!

回答

0

這是具有挑戰性的,但你可以用下面的查詢做:

select t.* 
from (select t.*, (@rn := @rn + 1) as seqnum 
     from t cross join 
      (select @rn := 0) param 
     order by (id <> 191) desc 
    ) t 
order by (seqnum < 8) desc, 
     (id = 191) desc, 
     rand(); 

一種痛苦。您必須確保在前七行中ID 191是而不是。然後,您要確保前後的隨機行不重疊 - 這就是爲什麼union方法難以實現的原因。