2014-07-23 43 views
0

我有這個疑問:雙WHERE NOT語句SQL

$query = "SELECT pic_square, 
       name, 
       highest_score, 
       num_tries, 
       avg_total 
      FROM users 
     WHERE NOT played_game = '0' 
     ORDER BY avg_total DESC"; 

當我選擇pic_squarenamehighest_scorenum_triesavg_total從所有用戶

沒有自己玩過的遊戲設定'' 0 ''。


我想補充的另一個條件,所以我只選擇用戶說:

  • 沒有他們played_game設置爲'0 ''
  • DO沒有他們的名字空

PS:該名稱不能爲空,它只能爲空,我不能更改數據庫結構本身。

那麼,如何添加這些雙WHERE不能在一起?

回答

2
WHERE NOT (played_game = '0' or name = '') 

WHERE played_game <> '0' and name <> '' 
1
$query = "SELECT pic_square,name,highest_score,num_tries,avg_total FROM users 
    WHERE NOT (played_game = '0' OR name IS NULL OR name='') 
    ORDER BY avg_total DESC"; 
1
$query = "SELECT pic_square,name,highest_score,num_tries,avg_total FROM users 
    WHERE played_game <> '0' AND name <> '' ORDER BY avg_total DESC"; 

簡單地改變條件像

where played_game <> '0' AND name <> '' 
1

您可以使用此查詢:

$query = "SELECT pic_square, 
       name, 
       highest_score, 
       num_tries, 
       avg_total 
      FROM users 
      WHERE NOT played_game = '0' 
      AND IFNULL(name,'') <> '' 
     ORDER BY avg_total DESC"; 

使用IFNULL你會得到肯定NULL值和空值的處理一樣。

1
$query = "SELECT pic_square,name,highest_score,num_tries,avg_total 
      FROM users 
      WHERE played_game != '0' 
      AND name NOT NULL 
      ORDER BY avg_total DESC";