Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.03;
Скачать: 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 вся ветка

Текущий архив: 2006.09.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
15-1155280871
GEN++
2006-08-11 11:21
2006.09.03
CRC16 для MODBUS с помощью таблицы


2-1155562900
Слон
2006-08-14 17:41
2006.09.03
Нужна помощь с заданием.


2-1155281729
alles
2006-08-11 11:35
2006.09.03
Как прочитать картинку GIF из DLL?


1-1149819265
tButton
2006-06-09 06:14
2006.09.03
оптимизация: что быстрее?


15-1155197903
worldmen
2006-08-10 12:18
2006.09.03
Стандарты "MiniDV" и "DVD" и их отличия. Цифровые камеры.