2

I have the code below to query a table which retrieves arrays. The parameter $idList could have several values and may therefore produce duplicates. I am only interested in inserting one unique memalertid.

Any advice on how to remove the duplicates would be much appreciated.

$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);    

Thanks very much

4 Answers 4

4

Simply use SELECT DISTINCT to select distinct rows.

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

You could also GROUP BY memalertid instead.

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

For more information: http://dev.mysql.com/doc/refman/5.5/en/select.html.

Sign up to request clarification or add additional context in comments.

Comments

2
$newArray = array_unique($yourArray);

This will create a new array only with unique values; excluding any duplicates.

Comments

2

You can use group by clause to group the results with the same id, so that you'll get only unique ids

Comments

0

No need to get PHP involved. Just SELECT using GROUP BY.

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.