Portál AbcLinuxu, 28. července 2025 12:38
Ahoj, v db mam v jednej tabulke zaznamy ktore su tam zapisane dva krat, vsetko je rovnake okrem primarneho kluca, nevie niekto poradit akym dotazom by som tieto duplicitne zaznamy odstranil? Pouzivam MySQL.
INSERT INTO ... SELECT ... GROUP BY ...
).
No to by prave problem bol.
alter ignore table ... add unique key (...);
Díky tomu ignore se duplicitní řádky smažou.
tak ze si odpoviem sam, prvy sposob:
DELETE bad_rows.*
FROM test AS bad_rows
INNER JOIN (
SELECT save_timestamp
FROM test
GROUB BY save_timestamp
HAVING COUNT(*) > 1
) AS good_rows ON good_rows.save_timestamp = bad_rows.save_timestamp;
druhy sposob:
DELETE bad_rows.*
FROM test AS bad_rows
WHERE EXISTS(
SELECT *
FROM test AS good_rows
WHERE good_rows.save_timestamp = bad_rows.save_timestamp
GROUP BY save_timestamp
HAVING COUNT(*) > 1
);
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.