3

これは正常に機能しますが、返される結果が 8 件未満の場合に問題が発生します。不足している残りの結果に対してクエリを繰り返す以外に方法はありますか? どんな助けでも感謝します、ありがとう。

       $vacation = mysql_query("SELECT i.* 
       FROM vacation_offer_tbl i
       INNER JOIN vacation_offer_pics_tbl c ON (c.vacat_offer_id = i.vacat_offer_id)
       WHERE i.conditional ='1' 
       AND c.pic_1 != ''
       // if < 8 results rerurn the rest where c.pic_1 ='nothing' 
       ORDER BY rand() 
       LIMIT 8") or die(mysql_error());
4

1 に答える 1

1

これがどれだけうまく機能するかはわかりませんORDER BY rand()が、このようなものが役立つかもしれません

SELECT i.*, if(c.pic_1 != '',0,1) as sortOn
FROM vacation_offer_tbl i
INNER JOIN vacation_offer_pics_tbl c ON (c.vacat_offer_id = i.vacat_offer_id)
WHERE i.conditional ='1' 
ORDER BY sortOn, rand() 
LIMIT 8
于 2012-09-12T22:31:22.830 に答える