Удалите дубликаты в массивах из запроса MYSQL, а затем вставьте в другую таблицу - PullRequest
2 голосов
/ 28 июня 2011

У меня есть код ниже, чтобы запросить таблицу, которая извлекает массивы.Параметр $ idList может иметь несколько значений и поэтому может создавать дубликаты.Я заинтересован только во вставке одного уникального memalertid.

Любой совет о том, как удалить дубликаты, был бы очень признателен.

Ответы [ 4 ]

4 голосов
/ 28 июня 2011

Просто используйте 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.

2 голосов
/ 28 июня 2011

Вы можете использовать group by , чтобы сгруппировать результаты с одинаковым идентификатором, так что вы получите только уникальные идентификаторы

2 голосов
/ 28 июня 2011
$newArray = array_unique($yourArray);

Это создаст новый массив только с уникальными значениями; исключая любые дубликаты.

0 голосов
/ 28 июня 2011

Не нужно вовлекать PHP. Просто SELECT используя GROUP BY.

INSERT INTO subsalerts (memalertid, idMembers, emailid)
    SELECT memalertid, $idMembers, $emailid FROM memlist WHERE listID IN ($idList) AND emailyes = 1 GROUP BY memalertid;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...