Helllo伙计们,
我有一个包含条目的表,这些条目具有字段机密性(公共,机密)和字段类型(项目,海报,出版物......) 。 那么我想做什么:我想在SELECT中过滤所有条目,但不要过滤具有指定类型和机密性的条目。
例如:
type=project, confidentiality=public | should be selected
type=project, confidentiality=confidential | should be not selected
type=poster, confidentiality=public | should be selected
type=poster, confidentiality=confidential | should be selected
有没有好办法呢?
SELECT ...
WHERE (type = 'project' AND confidentiality = 'public') OR type = 'publication' OR type
= 'poster' OR type = 'lecture' OR type = 'committee'
GROUP BY
提前致谢
答案 0 :(得分:1)
根据您提供的信息,您的查询看起来没问题。
这个较短的查询会起作用吗?
SELECT ...
WHERE (type = 'project' AND confidentiality = 'public')
OR type <> 'project'
注意:上述查询可缩短为:
SELECT ...
WHERE confidentiality = 'public'
OR type <> 'project'
答案 1 :(得分:1)
在您的示例中,您要选择confidentiality
不是机密的记录。对?试试这个,
SELECT ....
FROM ....
WHERE type <> 'project' AND confidentiality <> 'confidential'
OR与
相同SELECT ....
FROM ....
WHERE NOT (type = 'project' AND confidentiality = 'confidential')
答案 2 :(得分:0)
您的预期逻辑似乎是:
SELECT ... WHERE type != 'project' OR confidentiality = 'public';