Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
28 Апрель 2024, 14:54:02
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Гродненский Форум > Компьютеры > Программирование
(Модераторы: Админ, barmalei) > Тема:

Срочный вопрос по MySQL

Страниц  :   Вниз
  Печать  
Автор Тема: Срочный вопрос по MySQL  (Прочитано 2352 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Fox
Кандидат в депутаты
****

Репутация: +210/-60
Offline Offline

Пол: Мужской
Сообщений: 4840


これ から おせわ に なります

Просмотр профиля WWW
« : 03 Май 2005, 23:10:21 »

Есть база в ней куча полей (допустим 20)!
есть необходимые поля (10)
надо выбрать все записи в которых не повторяется ни одно из необходимых полей.
distinct не помогает так как проверяет повторяемость только по одному полю да и то как-то странно
distinctrow не подходит так как в строке два поля обязательно меняются, но они не входят в необходимые.
КТО ЗНАЕТ КАК РЕШИТЬ ?
пишите варианты если  не понятен вопрос спрашивайте дополню!
Записан

Fox's server!  
Модератор - это человек, который молится о бесконечном терпении...а мечтает о бесконечных патронах!
ghostWhite
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Пол: Мужской
Сообщений: 387


Просмотр профиля
« Ответ #1 : 04 Май 2005, 02:10:31 »

1. Цитата из документации:

Цитировать
Параметры (опции) DISTINCT, DISTINCTROW и ALL указывают, должны ли возвращаться дублирующиеся записи. По умолчанию установлен параметр (ALL), т.е. возвращаются все встречающиеся строки. DISTINCT и DISTINCTROW являются синонимами и указывают, что дублирующиеся строки в результирующем наборе данных должны быть удалены.


2. Ответ на твой вопрос всё таки DISTINCT. Только DISTINCT относится не к полю а ко всему предложению SELECT. И рассматривает на уникальность он сразу всё множество выбираемых полей в строке. Т.е. для двух столбцов (c1, c2) строка со значениями "а", "б" будет естественно отличаться от строки "а", "в".

3. Ты хочешь чего то странного  Подмигивающий. Посмотри на пример в пункте 2. Результаты выдаются строками.










c1c2
1."а""б"
2."а""в"


И в связи с этим нет способа обеспечить уникальность значений для столбца c1. В столбце c1 одно уникальное значение, а в столбце c2 их два.

Так что дальше тебе придётся что то делать на прикладном уровне.

PS как то движок фолрума странновато таблицу нарисовал  Грустный
« Последнее редактирование: 04 Май 2005, 02:14:05 от ghostWhite » Записан

Не будите во мне зверя, он и так всё время не высыпается

Fox
Кандидат в депутаты
****

Репутация: +210/-60
Offline Offline

Пол: Мужской
Сообщений: 4840


これ から おせわ に なります

Просмотр профиля WWW
« Ответ #2 : 04 Май 2005, 02:27:32 »

Дело в том что все 5 полей будут идентичны:
q1 q2 q3 q4 q5
q   w  e   r   t
q   w  e   r   t
и так далее!
но есть поля q0,q6,q7.
остальные поля могут не совпадать, если в этих 5 есть разница есть, то надо выводить.
select distinct q1,q2,q3,q4,q5 from table
не отрабатывает нормально

Все что я находил по distinct - это то что оно работает по первому полю, а distinctrow - по всей строке (все не надо как минимум два поля надо исключить)
« Последнее редактирование: 04 Май 2005, 02:30:41 от Fox » Записан

Fox's server!  
Модератор - это человек, который молится о бесконечном терпении...а мечтает о бесконечных патронах!
ghostWhite
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Пол: Мужской
Сообщений: 387


Просмотр профиля
« Ответ #3 : 04 Май 2005, 02:30:58 »

что значит не отрабатывает нормально ?

для твоего примера:

q1 q2 q3 q4 q5
q   w  e   r   t
q   w  e   r   t

запрос select distinct q1,q2,q3,q4,q5 from table должен вывести:

q   w  e   r   t

что выводит у тебя ?

Записан

Не будите во мне зверя, он и так всё время не высыпается

Fox
Кандидат в депутаты
****

Репутация: +210/-60
Offline Offline

Пол: Мужской
Сообщений: 4840


これ から おせわ に なります

Просмотр профиля WWW
« Ответ #4 : 04 Май 2005, 02:47:32 »

Цитировать
но есть поля q0,q6,q7.

q0 q1 q2 q3 q4 q5 q6 q7
1   q   w   e   r   t    re  ew
2   q   w   e   r   t    qw 3
3   q   w   t   3   4   w   3
в ответе должно быть только две записи 1 и 3!
зы может в асю Улыбка

Все вроде разобрался!
Ну ничего может еще будут вопросы Улыбка
« Последнее редактирование: 04 Май 2005, 14:44:14 от Fox » Записан

Fox's server!  
Модератор - это человек, который молится о бесконечном терпении...а мечтает о бесконечных патронах!
Prox
Новенький


Репутация: +0/-0
Offline Offline

Сообщений: 2


Я люблю этот Форум!

Просмотр профиля
« Ответ #5 : 11 Май 2005, 20:57:58 »

а как насчёт обработки этих данных по средствам языка программирования?... конечно, помню, что есть постулат "что можно сделать средствами СУРБД, не стоит делать с помощью языка", но если иначе нет мыслей...
Записан
Fox
Кандидат в депутаты
****

Репутация: +210/-60
Offline Offline

Пол: Мужской
Сообщений: 4840


これ から おせわ に なります

Просмотр профиля WWW
« Ответ #6 : 11 Май 2005, 21:07:00 »

Чего хотел, того я добился, оказалось вся проблема была в данных и зря ворошил народ!
Запрос действительно работает так как я и думал просто при заполнении базы были допушены некоторые неточности!
Мой вопрос ЗАКРЫТ!
Записан

Fox's server!  
Модератор - это человек, который молится о бесконечном терпении...а мечтает о бесконечных патронах!
Страниц  :   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2024, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,092 секунд. Запросов: 19.