Вниз
Скачать: 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
4-1146765278
Colonel
2006-05-04 21:54
2006.09.03
Активизация окна


15-1155305525
TUser
2006-08-11 18:12
2006.09.03
Куда делся рубль,


2-1155529024
mozilader
2006-08-14 08:17
2006.09.03
Написание программы для автоматической работы принтера


15-1155470090
Andy BitOff
2006-08-13 15:54
2006.09.03
День строителя!


15-1155297927
ArtemESC
2006-08-11 16:05
2006.09.03
Пытался установить 4 диска Брокгаузъ и Ефронъ...




   Наверх