Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.09.03;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.051 c
2-1155633400
kiwooo
2006-08-15 13:16
2006.09.03
HexToStr


4-1147107989
Destroyer
2006-05-08 21:06
2006.09.03
Удаление занятого файла


6-1143721565
vic_774N
2006-03-30 16:26
2006.09.03
решение проблемы подсей


2-1155664754
NikIta86
2006-08-15 21:59
2006.09.03
Как отловить завершение работы Windows в безоконном приложении?


2-1155643868
KyRo
2006-08-15 16:11
2006.09.03
Процес не завершается





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский