Double WHERE NOT statement sql


Double WHERE NOT statement 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 FROM

不要将他们玩的游戏设置为"0">


我想添加另一个条件,这样我只选择以下用户:

  • 不要将他们的played_game设置为"0">
  • 不要让他们的名字为空

PS:名称不能为null,只能为空,我无法更改DB结构本身

那么,我如何将这些对偶WHERE NOT加在一起呢?

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

WHERE played_game <> '0' and name <> ''
$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";
$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 <> ''
$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";

您可以使用以下查询:

$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值和空值得到相同的处理。