2011-11-10 12 views
1

私は列の値の出現回数を数え、出現回数が1より大きい行を返します。例えばmysqlで列の値が繰り返されるレコードを返す

SomeId AnotherId 
1  BC4 
1  CDE 
1  SDF 
5  ER 
5  WER 
4  DFGR4 

Iは、その発生列SomeIdSomeIdが1より大きい取得することができたいです。

私はSUMGROUPが、運:(

答えて

2

これが複数回発生するのIdsを返しますを使用して見てきました

SELECT SomeId 
FROM yourTable 
GROUP BY SomeId 
HAVING COUNT(1) > 1 
+0

は完璧働いて、ありがとうございました:)間違っていると、とにかく非常に悪い考えです –

0
SELECT SomeId, COUNT(SomeId) AS someidcount 
FROM tablename 
GROUP BY SomeId 
HAVING someidcount > 1 
0

はこれを試してみてください:。

select count(*) as frequency, SomeId group by SomeId having frequency > 1 
1
SELECT SomeId 
    FROM YourTable 
    GROUP BY SomeId 
    HAVING COUNT(SomeId) > 1; 
0

あなたはGROUP BYと正しい軌道に乗っていましたが、HAVINGも必要でした。

これを試してみてください:

SELECT SomeId, COUNT(SomeId) 
FROM table 
GROUP BY SomeId 
HAVING COUNT(SomeId) > 1 

はここで初心者のためのa Wikipedia article on the HAVING clauseへのリンクです。

0

これを試してください:あなたはPHPに精通している場合

select SomeId, Count(distinct AnotherId) 
    from YourTable 
group by SomeId 
having Count(distinct AnotherId) > 1 
-1

は、あなたがこのようにそれを行うことができます。

$sql = "SELECT * FROM table"; 
$res = mysql_query($sql); 
while($row = mysql_fetch_assoc): 
if($row['SomeId'] > 1): 

{do whatever you like here...} 

endif; 
endwhile; 
+1

。あなたがそれを必要としないときにPHPを使用しないでください。 –

+0

このユーザーがPHPを使用していて、データベースの目的がPHP用である場合にのみ、私はこれを提案しています。もしそうでなければ、それは悪い考えです。 –

+0

まず、あなたの解決策は単に働きません。 OPが望むことはしません。第二に、たとえOPがPHPを使用しても(それは仮定するのは良い考えではありませんが)、それでもやはり悪い解決策になります。あなたはDBMSの仕事をするためにPHPを使用しないでください。 –

関連する問題