2011-06-28 19 views
2

配列を取得するテーブルを照会するコードは次のとおりです。パラメータ$ idListは複数の値を持つ可能性があり、重複を生成する可能性があります。私はただ一つのユニークなメモリアルを挿入することに興味があります。MYSQLクエリから配列の重複を削除し、別のテーブルに挿入します。

重複を削除する方法についてのアドバイスをいただければ幸いです。

$sql = mysql_query("SELECT memalertid from memlist where listID IN ($idList) AND (emailyes = '1') "); 
while ($info = mysql_fetch_array($sql)){ 
$insert_query = "insert into subsalerts (memalertid, idMembers, emailid) VALUES('".$info['memalertid']."','$idMembers','$emailid')"; 
$insert_buffer = mysql_query($insert_query);  

どうもありがとうございました

答えて

4

SELECT DISTINCTを使用して異なる行を選択するだけです。

SELECT DISTINCT memalertid FROM memlist WHERE listID IN ($idList) AND (emailyes = '1') 

また、代わりにGROUP BY memalertidことができます。

SELECT memalertid FROM memlist WHERE listID IN ($idList) AND (emailyes = '1') GROUP BY memalertid 

詳細については、http://dev.mysql.com/doc/refman/5.5/en/select.htmlを参照してください。あなたは固有IDのみ

2
$newArray = array_unique($yourArray); 

これが唯一のユニークな値を含む新しい配列を作成します。重複は除きます。

2

あなたは、同じIDを持つグループに結果をgroup by句を使用することができます。ちょうどSELECTGROUP BYを使用します。

INSERT INTO subsalerts (memalertid, idMembers, emailid) 
    SELECT memalertid, $idMembers, $emailid FROM memlist WHERE listID IN ($idList) AND emailyes = 1 GROUP BY memalertid; 
0

PHP関与を取得する必要はありませんが得られますように

関連する問題