假设我有这种结构的表格:
id model color
------ -------- ----------
1 Ford yellow
2 Ford green
3 Ford red
4 Ford yellow
5 Subaru yellow
6 Subaru red
我需要进行查询,它会返回列表中的每辆车,黄色福特除外。有人可以帮忙吗?
答案 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子句