选择除某些行以外的所有行

时间:2011-08-26 00:23:07

标签: sql

假设我有这种结构的表格:

  id      model       color
------  --------    ----------
   1      Ford           yellow
   2      Ford           green
   3      Ford           red
   4      Ford           yellow
   5      Subaru         yellow
   6      Subaru         red

我需要进行查询,它会返回列表中的每辆车,黄色福特除外。有人可以帮忙吗?

5 个答案:

答案 0 :(得分:15)

... WHERE NOT (model = 'Ford' AND color = 'yellow')

答案 1 :(得分:4)

如果要动态取消选择某些行,可以使用它:

SELECT * FROM `table_1` WHERE id NOT IN (SELECT id FROM `table_2` WHERE column_name='value')

注意:此处 id 是一个column_name,两个表都有共同点。

祝你好运。 :)

答案 2 :(得分:1)

除了Foo Bah的回答,

如果你有这样的空列值;

NAME      COLOR

Ford      green               
Ford      red                 
Subaru    yellow              
Subaru    red                 
Subaru    NULL
Ford      NULL              

你需要使用ISNULL()函数来带来空列值

... WHERE  NOT (ISNULL(NAME,'') = 'Ford' AND ISNULL(COLOR,'') = 'yellow')

答案 3 :(得分:1)

希望这会对您有所帮助。

    $this->db->where('model !=','FORD' AND 'color!=','yellow');
    $query= $this->db->get('table_name');
    $res = $query->result_array();
    return $res;

答案 4 :(得分:0)

使用颜色<> “黄色”和型号<> “福特”作为你的where子句