首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在重复输入的情况下获取特定条目

在重复输入的情况下获取特定条目
EN

Stack Overflow用户
提问于 2014-05-14 09:09:44
回答 2查看 77关注 0票数 0

情景:--我有一个场景,在这个场景中,除了一个字段之外,所有字段都是相同的。我编写了一个存储过程,它使用来自不同表的多个联接来获取数据。在我的例子中,我需要这两种情况中的任何一种,这取决于场景。例:

实际案例

代码语言:javascript
复制
  |UserId | First name | Last name | IsRequired | IsDeleted |
     1        harry          tom        true         false
     1        harry          tom        false        false
     3         ram            sham       true         false

场景:

如果IsRequired为true和false分别有两个记录,那么我需要一个IsRequired true的案例。

问题:

现在的问题是,我需要过滤掉select语句中的记录。

因此,任何人都知道如何在select语句中这样做。

预期案例:

代码语言:javascript
复制
| UserId | First name | Last name | IsRequired | IsDeleted |
    1        harry          tom        true         false
    2        ram            sham       true         false
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-14 09:21:45

更新解决方案:

代码语言:javascript
复制
SELECT UserId, First name, Last name, IsRequired, IsDeleted FROM table WHERE UserId IN (SELECT UserId FROM users GROUP BY UserId HAVING count(distinct(IsRequired)) > 1) and IsRequired = 'true'
UNION
SELECT UserId, First name, Last name, IsRequired, IsDeleted FROM table WHERE UserId IN (SELECT UserId FROM users GROUP BY UserId HAVING count(IsRequired) = 1)

请参阅http://sqlfiddle.com/#!3/d178f/1/0

复制了完全相同的数据库结构。

票数 1
EN

Stack Overflow用户

发布于 2014-05-14 09:50:41

试试这个:只是这是我的主意。

步骤1:首先,将IsRequired的数据类型值更改为BOOLEAN。因此,在IsRequired列中,您拥有的内容包含了类似于01的值。

步骤2:然后使用MAX()。查询是

代码语言:javascript
复制
SELECT userId,firstname,lastname,MAX(IsRequired),IsDeleted FROM `table_name` GROUP BY userId
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23650246

复制
相关文章

相似问题

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