2014-10-30 30 views
0

需要一些幫助?使用「WHERE」兩次(隨機)MySQL

這工作

$sql = " 
    SELECT * FROM 
     (SELECT * FROM $TableDir 
      WHERE dir_ranking = '1' 
      ORDER BY RAND() LIMIT 16) 
     x ORDER BY dir_date_listed ASC"; 

它從 「$ TableDir」 隨機選擇其中排名= 1,並限制16條

但我需要過濾掉的另一種選擇。我需要過濾"dir_approved = Y"以及 我想這

$sql = " 
    SELECT * FROM 
     (SELECT * FROM $TableDir 
      WHERE dir_ranking = '1' 
      ORDER BY RAND() LIMIT 16) 
     WHERE dir_approved = 'Y' x 
      ORDER BY dir_date_listed ASC"; 

 $sql = " 
      SELECT * FROM 
       (SELECT * FROM $TableDir 
        WHERE dir_ranking = '1' AND WHERE dir_approved = 'Y' 
         ORDER BY RAND() LIMIT 16) 
       x ORDER BY dir_date_listed ASC"; 

過去兩年中沒有上述造成任何數據

有另一種序列或方式來獲得這工作

回答

1

它不是WHERE x = y WHERE a = b,格式是WHERE x = y AND a = b。這應該可以解決你的問題。

+1

謝謝!有用 !不知道爲什麼我這樣做了!我想因爲(隨機)我雖然我不得不重做那裏! – Cavemanharris 2014-10-30 12:10:15

+1

沒問題!也是我的道歉,我也注意到你把你的第一個'WHERE'放在子查詢的外面。如果'WHERE'適用於子查詢,那麼它應該是'SELECT(yourColumns WHERE condition'),而你的是'SELECT(yourColumns)WHERE condition' – Eilidh 2014-10-30 12:11:57