Usunięcie duplikatów w phpMyAdmin

Odpowiedz Nowy wątek
2019-07-10 10:00
0

Witam mam pewien problem, muszę w systemie phpMyAdmin, usunąć duplikaty, baza przedstawia się mniej więcej jak na załączniku.

screenshot-20190710095312.png

Próbowałem to zrobić mniej więcej tak

DELETE h1 FROM History h1
INNER JOIN History h2
WHERE h1.idHistory < h2.idHistory
AND   h1.Address = h2.Address
AND   h1.DateTime  = h2.DateTime;

Ale problem jest przy h1, (unexpected token), jak testowej bazie w MySql Workbench 8.0 CE to pytanie działa, dobrze, ale problem robi się na serwerze... a już nie mam pomysłów jak to mogę zrobić, próbowałem, z wewnętrznymi zapytaniami itp.

Dane:
Typ serwera: MySQL
Wersja serwera: 5.7.26-0ubuntu0.16.04.1

Pozostało 580 znaków

2019-07-10 10:05
0
DELETE h1 FROM History h1, History h2
WHERE h1.idHistory > h2.idHistory
AND   h1.Address = h2.Address
AND   h1.DateTime  = h2.DateTime;
Unexpected token. (near "h1" at position 7) dalej ten sam błąd - IvanPacanov 2019-07-10 10:06

Pozostało 580 znaków

2019-07-10 11:03
1

RTFM:
Table aliases are also supported for single-table DELETE statements beginning with MySQL 8.0.16. (Bug #89410,Bug #27455809)
Lokalną bazę pewnie masz 8, a na serwerze 5.6

Pozostało 580 znaków

2019-07-10 11:11
0

Jeśli nie jesteś w stanie zaktualizować wersji MySQLa na serwerze, możesz posłużyć się tabelą tymczasową:

CREATE TEMPORARY TABLE rows_to_delete
  SELECT h1.idHistory
  FROM History h1
  INNER JOIN History h2
  WHERE h1.idHistory < h2.idHistory
  AND   h1.Address = h2.Address
  AND   h1.DateTime  = h2.DateTime;

DELETE FROM History INNER JOIN rows_to_delete USING (idHistory);

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0