2017-10-11 63 views
1

我想返回phoneBox数据库中具有匹配的phoneBoxRecordID的所有记录。在列中查找具有匹配值的记录

SELECT * FROM phoneBox where phoneBoxRecordIDs MATCH 

将返回:

Id phoneBoxRecordIDs colour 
4 492948   Blue 
9 492948   Brown 
27 492948   Pink 
+0

我删除了不兼容的数据库标签。使用您真正使用的数据库进行标记。另外,匹配什么? –

+0

这场比赛是错误的,它是我想要做的一个例子,但我不确定如何去做它我想返回phoneBox表中存储在phoneBoxRecordIDs列中的任何值与存储在同一列中的任何其他值相匹配的所有记录 – John

+0

听起来就像你必须在WHERE子句中使用嵌套的select语句。 –

回答

1

您可以通过现场群里计数> 1, 但这只会返回phoneboxrecordid并记录与该ID

SELECT Count(*) [Count] , phoneBoxRecordIDs FROM phoneBox Group By phoneBoxRecordIDs Having Count(*) > 1

的#
+0

您必须明确声明连接...原始样式很快将被弃用 – maSTAShuFu

0

如果您想要phoneBoxRecordIDs出现多次的行,那么ANSI标准方法将使用窗口函数:

select pb.* 
from (select pb.*, count(*) over (partition by phoneBoxRecordIDs) as cnt 
     from phoneBox 
    ) pb 
where cnt > 1 
order by phoneBoxRecordIDs; 

你可以通过返回的记录,只有当一个匹配的记录存在也这样做:

select pb.* 
from phoneBox pb 
where exists (select 1 
       from phoneBox pb2 
       where pb2.phoneBoxRecordIDs = pb.phoneBoxRecordIDs and 
        pb2.id <> pb.id 
      ); 
相关问题