Вниз
Скачать: CL | DM;

MySQL   Найти похожие ветки 

← →
tButton ©   (2006-08-02 11:16) [0]

можно ли одним запросом получить все уникальные значения столбца таблицы?
что-то я мыслю-мыслю, а намыслить ничего не получается
точнее получается - но получается выбрать все значения столбца и профильтровать на уникальность
а это мне не кажется хорошим решением


← →
Труп Васи Доброго ©   (2006-08-02 11:18) [1]

tButton ©   (02.08.06 11:16)
Select DISTINCT Mytable.MyField from Mytable


← →
tButton ©   (2006-08-02 11:20) [2]

спасиб. проверю)


← →
Dok   (2006-08-02 13:20) [3]

Мдя. Мыслю мыслю, а мануал почитать боюсь :)


← →
Calm ©   (2006-08-02 15:07) [4]

книжку что ли почитай для чайников?


← →
vidiv ©   (2006-08-02 16:50) [5]

не знал про Select DISTINCT.
Можно еще с помощью группировки:
SELECT `Mytable`.`MyField` FROM `Mytable`GROUP BY `Mytable`.`MyField`.


← →
ZeroDivide ©   (2006-08-02 23:16) [6]

Мдя.... :)  distinct (и группировка) не даст проверку на уникальность. Он просто выберет уникальные и не уникальные значения в единственном экземпляре.
Спасет только having и одна из разновидностей объединений (не знаю, есть ли в MySQL - minus)

select
...
minus
...
select
...
group by
...
having count(XXX) > 1

Можно еще написать
select
...
where id not in (select id from YYYY where ... group by ... having count(XXX) > 1)


← →
Германн ©   (2006-08-03 01:18) [7]


> ZeroDivide ©   (02.08.06 23:16) [6]
>
> Мдя.... :)  distinct (и группировка) не даст проверку на
> уникальность. Он просто выберет уникальные и не уникальные
> значения в единственном экземпляре.

Но ведь нет полной уверенности, что понимал под "все уникальные значения столбца таблицы" автор сабжа.
Просто каждый из отвечающих отвечал в меру своей испорченности :-)
© Известный афоризм.


← →
Труп Васи Доброго ©   (2006-08-03 17:31) [8]

ZeroDivide ©   (02.08.06 23:16) [6]
Он просто выберет уникальные и не уникальные значения в единственном экземпляре.

Объяснись по русски, как это "уникальные и не уникальные значения в единственном экземпляре"?
DISTINCT выбирает именно уникальные записи по данному полю.
Просвети пожалуйста, я устроюсь на курсы по SQL.


← →
alles ©   (2006-08-03 17:41) [9]

Труп Васи Доброго ©   (03.08.06 17:31) [8]
пример поля с данными
|Name|
Smith
John
Wells
Katrina
John
Jacob

select distinct name  from mytable выдаст тебе результат
|Name|
Smith
John
Wells
Katrina
Jacob

ЗЫ: distinct очень медленно работает при больших количестве строк


← →
Труп Васи Доброго ©   (2006-08-03 18:01) [10]

alles ©   (03.08.06 17:41) [9]
выдаст тебе результат

Ну я не вижу косяков, он выдал все УНИКАЛЬНЫЕ записи, что и требовалось вопрошающему.
alles ©   (03.08.06 17:41) [9]
ЗЫ: distinct очень медленно работает при больших количестве строк

При количестве записей порядка 1М тормозов не замечено.
З.Ы. Firebird 1.5


← →
vidiv ©   (2006-08-04 09:02) [11]


> При количестве записей порядка 1М тормозов не замечено.

8,261,550 строк, distinct выполняется примерно 2 сек. (при учете, что поле индексированное)
используя группировку 1 сек. :)


← →
tButton ©   (2006-08-04 09:25) [12]

поле индексированое
distinct помог
целью выбора уникальных значений было составление автоматического рубрикатора


← →
Труп Васи Доброго ©   (2006-08-04 13:24) [13]

vidiv ©   (04.08.06 9:02) [11]
2 сек. (при учете, что поле индексированное)
используя группировку 1 сек. :)

Обалденное преимущество!!!
Всё, больше Distinct не использую!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.025 c
3-1151320683
WhiteBarin
2006-06-26 15:18
2006.09.03
Передача от клиента к серверу, Ваши мнения?


2-1155628618
stalcker
2006-08-15 11:56
2006.09.03
idHTTP


2-1155030376
LexXL
2006-08-08 13:46
2006.09.03
клавиши


4-1147241707
Patrick
2006-05-10 10:15
2006.09.03
Существование процесса


15-1155023387
Megabyte
2006-08-08 11:49
2006.09.03
Перевод слова из специализированной статьи




   Наверх