Задать вопрос
@Lavrov95

Как удалить все данные из датабазы где значение совпадают, оставить толка одну?

table `cities`

id | name
1  | moscow
2  |  washington
3  |  washington
  • Вопрос задан
  • 36 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
DELETE `c1`.*
  FROM `cities` AS `c1`
  JOIN `cities` AS `c2` ON `c2`.`name` = `c1`.`name`
    AND `c2`.`id` < `c1`.`id`
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
devspec
@devspec
Помогло? Отметь решением
Как-то так
Ответ написан
Комментировать
@profaller
Например:

DELETE
FROM cities
WHERE id NOT IN (

  SELECT id
  FROM (
         SELECT t1.id

         FROM cities t1

           LEFT JOIN (
                       SELECT id
                       FROM cities
                       GROUP BY name
                     ) t2 ON t1.id = t2.id

         WHERE t2.id IS NOT NULL
       ) tmp
)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы