Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Выбор уникальных значений из таблицы.(MySQL)

345
05 февраля 2007 года
vadim_k
312 / / 01.08.2006
Добрый всем день.

Имеется такая вот например таблица...

---------sp0-----------------sp1--------------sp2----------------sp3
--------юрист---------секретарь-------программист-------менеджер
------менеджер----------юрист-----------юрист-------------столяр
-------водитель--------финансист---------юрист-----------водитель

То есть значения повторяются не только в столбцах но и в строках.
Как вывести только уникальные значения для всей таблицы ???

Вроде и не сложная задача, а не пойму с чего начать ???


Помогите олуху кто знает ?
13
05 февраля 2007 года
RussianSpy
3.0K / / 04.07.2006
Если быстро, тупо и не думая то так:
 
Код:
SELECT DISTINCT * FROM (
SELECT DISTINCT sp0 FROM table1
UNION
SELECT DISTINCT sp1 FROM table1
UNION
SELECT DISTINCT sp2 FROM table1
UNION
SELECT DISTINCT sp3 FROM table1
) as q1


Не тестил но по идее должно работать.

Хотя мне лично самому такой запрос не нравится - некрасивый он и ж*пой чую что можно проще, но времени на раздумья у меня к сожалению нет.
308
05 февраля 2007 года
Комаджу
850 / / 26.07.2006
Если нужны уникальные строки (чего из условия не ясно), то можно как RussianSpy говорит, только без подзапроса (т.е. DISTINCT *). Если нужны строки, где ни в одном поле не повторяются значения (чего из условия не ясно), то нужно сравнивать значения (я бы сделал тупо через WHERE, хотя запрос получился бы массивным). А может другая уникальность нужна?
13
05 февраля 2007 года
RussianSpy
3.0K / / 04.07.2006
Цитата: Комаджу
Если нужны уникальные строки (чего из условия не ясно), то можно как RussianSpy говорит, только без подзапроса (т.е. DISTINCT *). Если нужны строки, где ни в одном поле не повторяются значения (чего из условия не ясно), то нужно сравнивать значения (я бы сделал тупо через WHERE, хотя запрос получился бы массивным). А может другая уникальность нужна?



Читаем что написал автор топика:

Цитата:
Как вывести только уникальные значения для всей таблицы ???



Соответственно без DISTINCT почти никак. Хотя можно использовать GROUP BY но меня просто в дрожь бросает от того как MySQL с ними работает потому и не привожу такой код, дабы люди не учились заведомо кривому SQL.

308
05 февраля 2007 года
Комаджу
850 / / 26.07.2006
Цитата: RussianSpy
Читаем что написал автор топика:

Ыхъ. Ну, не показалось мне, что нужны уникальные значения полей в таблице.

355
05 февраля 2007 года
<SCORP>
786 / / 21.10.2006
тогда читаем пост снова ;)
345
06 февраля 2007 года
vadim_k
312 / / 01.08.2006
 
Код:
SELECT DISTINCT * FROM (
SELECT DISTINCT sp0 FROM table1
UNION
SELECT DISTINCT sp1 FROM table1
UNION
SELECT DISTINCT sp2 FROM table1
UNION
SELECT DISTINCT sp3 FROM table1
) as q1


Вообщем то кажется работает только в переменной q1 ничего не появляется !
13
06 февраля 2007 года
RussianSpy
3.0K / / 04.07.2006
Цитата: vadim_k

Вообщем то кажется работает только в переменной q1 ничего не появляется !



Что значит не появляется?

Все работает. Только что проверил.

345
06 февраля 2007 года
vadim_k
312 / / 01.08.2006
Делаю

$r=@mysql_query($zapros);
while($f=@mysql_fetch_array($r)) echo $f[q1];

Ничего не выводит хотя количечтво найденных комбинаций правильно(@mysql_num_rows($r))
13
06 февраля 2007 года
RussianSpy
3.0K / / 04.07.2006
Цитата: vadim_k
Делаю

$r=@mysql_query($zapros);
while($f=@mysql_fetch_array($r)) echo $f[q1];

Ничего не выводит хотя количечтво найденных комбинаций правильно(@mysql_num_rows($r))



Ну еще бы!! Надо ведь так:

 
Код:
$r=mysql_query($zapros);
while($f=mysql_fetch_array($r, MYSQL_ASSOC)) echo $f['sp0'];


Что за мания расставлять везде собак @ ?

q1 - это не переменная, а псевдоним результата выборки подзапроса.
345
06 февраля 2007 года
vadim_k
312 / / 01.08.2006
while($f=mysql_fetch_array($r)) echo $f['sp0'];
У меня и так работает тоже
Спасибо за помощь !!!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог