Sql 在列中查找具有匹配值的记录

Sql 在列中查找具有匹配值的记录,sql,Sql,我想返回在phoneBox DB中具有匹配PhoneboxRecordId的所有记录 SELECT * FROM phoneBox where phoneBoxRecordIDs MATCH 将返回: Id phoneBoxRecordIDs colour 4 492948 Blue 9 492948 Brown 27 492948 Pink 您可以按count>1的字段分组, 但这只会返回phoneboxrecordid

我想返回在phoneBox DB中具有匹配PhoneboxRecordId的所有记录

SELECT * FROM phoneBox where phoneBoxRecordIDs MATCH
将返回:

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

您可以按count>1的字段分组, 但这只会返回phoneboxrecordid和具有该id的记录的数量

选择计数*[计数] ,PhoneBoxRecordId 从电话亭 按PhoneBoxRecordId分组
让Count*>1

如果希望PhoneBoxRecordId多次出现的行,则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
             );

我删除了不兼容的数据库标记。标记您真正使用的数据库。还有,匹配什么?匹配错了,这是我想做的一个例子,但我不确定如何做。我想返回phoneBox表中的所有记录,其中PhoneBoxRecordId列中存储的任何值与同一列中存储的任何其他值匹配。听起来您必须在where子句中使用嵌套的select语句。请提供所需的所有表。OP不完整您必须显式声明连接。。。原始风格很快就会过时