Как отобрать все встречающиеся неодинаковые записи?

Dor

Новичок
Как отобрать все встречающиеся неодинаковые записи?

Здравствуйте!
Возможно ли отобрать запросом из нескольких полей таблицы (MySQL 4.18) все встречающиеся неодинаковые записи?

Если нет, то как правильно удалить в массиве одинаковые значения - создать массив-список в котором бы присутствовали все, и при этом не было бы повторений?

Я "родил" вот это:

PHP:
$sample = mysql_query ("SELECT property1, property2, property3 FROM filter");//выбираю из полей "Свойства" все имеющиеся значения
for ($data=array(); $row=mysql_fetch_row($sample); $data[]=$row);//загоняю выбранное в массив $data(двухмерный)
for ($i=0; $i<count($data); $i++) {for ($j=0; $j<3; $j++) $razdel[] = $data[$i][$j];}//перегоняю в одномерный список $razdel
sort($razdel);//сортирую, для того, чтобы одинаковые записи шли по порядку
$result[]=$razdel[0];//первую запись заношу в новый массив $rezult
for ($i=0, $j=1; $i<count($razdel)-1; $i++, $j++){if ($razdel[$i]!==$razdel[$j]) $rezult[]=$razdel[$j];}//не повторяющиеся записи добавляю в итоговый массив
echo"<pre>"; print_r($rezult); echo"</pre>";//контролирую результат
Вроде работает, но интуиция говорит, что должно быть более простое и красивое решение :)
 

SiMM

Новичок
А почему вообще в таблице оказались одинаковые записи, если их наличие нежелательно? И какое отношение запросы имеют к PHP?
 

Dor

Новичок
А почему вообще в таблице оказались одинаковые записи, если их наличие нежелательно? И какое отношение запросы имеют к PHP?
Суть такова - есть список продукции, к каждому изделию дается несколько (в данном случае - 3) уникальных характеристик. У разных изделий они могут повторяться.
Нужно вывести характеристики-ссылки по которой отобразится весь список продукции с этой характеристикой.

Ассортимент постоянно меняется, меняют и характеристики - в зависимости от коньюктуры рынка. Поэтому меню должно формироваться динамически

-~{}~ 08.11.05 00:14:

А описание SELECT в мануале MySQL почему не прочитал?
Наверно плохо читал :-(
Попробую еще.
 

_RVK_

Новичок
>Попробую еще
И не забудь обратить внимание на конструкции GROUP BY и DESTINCT.
 

SelenIT

IT-лунатик :)
Dor
По-хорошему, меняй структуру базы - тут же явно отношение M:N, так что смело выноси характеристики в отдельную таблицу и делай таблицу связей.

И как вариант "половинчатого" решения - [sql]SELECT DISTINCT property1 FROM filter UNION
SELECT DISTINCT property2 FROM filter UNION
SELECT DISTINCT property3 FROM filter[/sql]
 

CoolKostik

Новичок
Я думаю так:
SELECT DISTINCT property1, property2, property3 FROM filter

DISTINCT - выбирает только уникальные записи из полей таблицы.

Так вроде намного проще, хотя могу и ошибаться, сам только учусь!
 

SelenIT

IT-лунатик :)
CoolKostik
Так проще выборка, но сложнее обработка выбранных данных в скрипте. И где гарантия, что уникальные характеристики их первой колонки не встретятся еще раз во второй или третьей?
 

Dor

Новичок
И где гарантия, что уникальные характеристики их первой колонки не встретятся еще раз во второй или третьей?
Делал так - и это сбило с толку.

Спасибо!
Попробовал предложеное, перечитал мануал - все получилось.
Буду думать над структурой.
 
Сверху