Форум: "Прочее";
Текущий архив: 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.036 c