在列中查找具有匹配值的记录
问题描述:
我想返回phoneBox数据库中具有匹配的phoneBoxRecordID的所有记录。在列中查找具有匹配值的记录
SELECT * FROM phoneBox where phoneBoxRecordIDs MATCH
将返回:
Id phoneBoxRecordIDs colour
4 492948 Blue
9 492948 Brown
27 492948 Pink
答
您可以通过现场群里计数> 1, 但这只会返回phoneboxrecordid并记录与该ID
SELECT Count(*) [Count] , phoneBoxRecordIDs FROM phoneBox Group By phoneBoxRecordIDs Having Count(*) > 1
+0
您必须明确声明连接...原始样式很快将被弃用 – maSTAShuFu
答
如果您想要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
);
我删除了不兼容的数据库标签。使用您真正使用的数据库进行标记。另外,匹配什么? –
这场比赛是错误的,它是我想要做的一个例子,但我不确定如何去做它我想返回phoneBox表中存储在phoneBoxRecordIDs列中的任何值与存储在同一列中的任何其他值相匹配的所有记录 – John
听起来就像你必须在WHERE子句中使用嵌套的select语句。 –