2017-10-11 64 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 
      ); 
相關問題