2011-02-01 4 views
0
にFacebookのFQL結果から

を重複したペアを削除します。私は私の友人の間の関係を取得するために、次のFacebookのFQLクエリを使用しているPHP

SELECT uid1, uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1 = $myUid) AND uid2 IN (SELECT uid2 FROM friend WHERE uid1 = $myUid) 

結果は私の友人の間で無向関係の2列の表です例えば、上記の例では

UID1 UID2 
UID2 UID3 
UID2 UID1 
UID3 UID5 

、関係(UID1、UID2)は、2回表示(UID1、UID2)として1一度(UID2、UID1)など。どちらの関係も同等です。そのような重複を削除したいのですが、そのうちの1つだけを残しておきます。

PHPを使用しているので、そのような重複を削除する最良の方法は何ですか?アイデアやポインターをありがとう。

ベスト、Andrej

+0

、あなたの質問に答える、答えを見つけた場合、その後による正解としてマーク... – Andrej

+2

を理解しないでください。チェックマークをクリックします。役に立つと思われる回答については、上向きの矢印をクリックしてください –

+0

また、古い質問に戻り、同じことを –

答えて

2

シンプル。

あなたのクエリに

AND uid1 < uid2 

を追加します。

+0

ニース!私はそれをテストします。 – Andrej

1

それがPHPでなければならず、結果セットが長すぎない場合:

class UniqueChecker { 
    private $aMap = array(); 

    public function mustAddPair($sItem1, $sItem2) { 
    if (empty($this->aMap["$sItem1 $sItem2"]) && empty($this->aMap["$sItem2 $sItem1"])) { 
     $this->aMap["$sItem1 $sItem2"] = true; 
     return true; 
    } 
    else 
     return false; 
    } 

} 
関連する問題