Общие > Базы данных

Проблема с mysql

(1/2) > >>

listopad:
Добрый день.

Есть такая проблема, люди , кто может посоветуйте пожалуйста.!

Есть таблица клиетнов с СТОЛЬЦАМИ
ID -NAME- ADRES-MAIL-OTHER-

МНОГО ЗАПИСЕЙ ГДЕ   MAIL   ОДИН И ТОТ ЖЕ . Т. Е БОНАЛЬНЫЕ ПОВТОРЫ.

НЕОБХОДИМО СДЕЛАТЬ ТАК, ЧТОБЫ ИЗ ЭТОЙ ТАБЛИЦЫ СДЕЛАТЬ ТОЧНО ТАКУЮ ЖЕ НО ЧТОБЫ  MAIL НЕ ПОВТОРЯЛСЯ ! Т. Е ВСЕ ЗАПИСИ ГДЕ МЫЛО ПОВТОРЯЕТЬСЯ БОЛЬШЕ 1 РАЗА , ПРОСТО ВЗЯТЬ И УДАЛИТЬ .!!!

Я ЗНАЮ ТОЛЬКО ТАК
CREATE TABLE people_new SELECT DISTINCT mail  FROM people
 НО В ЭТОМ СЛУЧАЕ СОЗДАЕТЬСЯ ТАБЛИЦА ТОЛЬКО С СТОЛБЦОМ mail , А мне еще нужны и данные из остальных столбцов !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Если делаю вот так
CREATE TABLE people_new SELECT DISTINCT id,mail  FROM people
-- Но id уникальны, а ,соответственно, mail повторяются с повторами !!!!

Очень благодарен !!!

commander:
а приложение простенькое или функцию написать слабо?

Phoinix:
listopad

Читаем в мануале что DISTINCT выбирает уникальные поля
соответсвенно:

--- Цитировать ----- Но id уникальны, а ,соответственно, mail повторяются с повторами !!!!
--- Конец цитаты ---

Что и следовало ожидать

А есть такая функция как GROUP BY, и если мы сделаем так:
CREATE TABLE people_new SELECT id, mail FROM people GROUP BY mail

То все будет как положено, только вот id будет подставлятся, первый попавшийся...

DISTINCT - это тот же GROUP BY только для всех выбранных столбцов

listopad:
Огромное спасибо !
Как же я сам не додумался ;)

listopad:
А сейчас проблема еще хуже.
Я сижу на masterhost. У них версия mysql 3.23

Что опять не получается !
Да допустим я создал новую таблицу с неповторяющимися mail.
Спосибо за это -Phoinix .

Имею две таблицы people_new и people.
Теперь пытаюсь как раз  найти тех , кто не вошел в новую таблицу
если делать так
SELECT ID FROM people_new, people WHERE people_new.ID != people.ID
--не работает ,т. к. как я понимаю такие запросы работают только в более новых версиях.

Если делаю так
SELECT id, count( * ) AS count
FROM people
GROUP BY email
HAVING count >1
ORDER BY count DESC
Он показывает какие адреса как раз повторяются , но по одному из кажной записи попали в новую таблицу , А мне нужны как раз только те которые не попали вообще , Или не попадут если использовать
CREATE TABLE people_new SELECT id, mail FROM people GROUP BY mail

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии