首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现条件mysql子句的最佳方法

实现条件mysql子句的最佳方法
EN

Stack Overflow用户
提问于 2012-08-16 07:38:45
回答 3查看 90关注 0票数 0

地狱的人,

我有一个包含条目的表,这些条目具有字段机密性(公开、机密)和字段类型(项目、海报、出版物,.)。那么,我想要做什么:我想在我选择的所有条目中筛选,但不筛选具有指定类型和机密性的条目。

例如:

代码语言:javascript
复制
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

有什么好办法吗?

代码语言:javascript
复制
SELECT ...
WHERE (type = 'project' AND confidentiality = 'public') OR type = 'publication' OR type
= 'poster' OR type = 'lecture' OR type = 'committee'
GROUP BY

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-16 07:51:30

从您的示例中,您希望选择confidentiality不保密的记录。对吗?尝尝这个,

代码语言:javascript
复制
SELECT ....
FROM ....
WHERE type <> 'project' AND confidentiality <> 'confidential'

或者是和

代码语言:javascript
复制
SELECT ....
FROM ....
WHERE NOT (type = 'project' AND confidentiality = 'confidential')
票数 1
EN

Stack Overflow用户

发布于 2012-08-16 07:51:28

考虑到您提供的信息,您的查询看起来还不错。

这种较短的查询有效吗?

代码语言:javascript
复制
SELECT ...
WHERE (type = 'project' AND confidentiality = 'public')
OR type <> 'project'

注:上述查询可缩短为:

代码语言:javascript
复制
SELECT ...
WHERE confidentiality = 'public'
OR type <> 'project'
票数 1
EN

Stack Overflow用户

发布于 2012-08-16 07:51:45

你的逻辑似乎是:

代码语言:javascript
复制
SELECT ... WHERE type != 'project' OR confidentiality = 'public';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11982663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档