Autor | Zpráva | ||
---|---|---|---|
Majkelju Profil |
#1 · Zasláno: 5. 4. 2013, 21:51:53
Nevíte někdo, jak na to? Nedopatřením jsem do databáze naimportoval každý záznam 2x a potřeboval bych se duplicit zbavit.
|
||
tiso Profil |
#2 · Zasláno: 5. 4. 2013, 22:13:56
Tak ich zmaž všetky a naimportuj ich správne - len raz.
|
||
Alphard Profil |
#3 · Zasláno: 5. 4. 2013, 22:26:43
Raději to smazat jak píše tiso, ale ať tady zazní odpověď, jako všude jinde funguje
where id%2=0 .
|
||
MartinR Profil |
#4 · Zasláno: 6. 4. 2013, 08:11:02
@Alphard - tohle by asi neprošlo .. protože pokud
a] nemá autoincrement, pak budou id 1,1,2,2,3,3 - tzn tvým způsobem se nezbaví duplicit, ale sudých id b] pokud má autoincrement, pak budou 1,2,3 ... 10,11,12 - tzn opět by se zbavil pouze sudých id, ale ne duplicit @Majkelju - pokud más autoincrement, tak prostě smaž všechny .. where id > poslední_id_které_není_duplicita A nebo to prostě smaž a naimportuj znovu :-) |
||
Jan Tvrdík Profil |
#5 · Zasláno: 6. 4. 2013, 09:17:49
MartinR:
Téma vlákna je „Smazání záznamů se sudým id“ :) |
||
Tori Profil |
↑ Ale píše, že se chce zbavit duplicit.
Předpokládám, že se duplicita pozná podle sloupce id, kdyžtak si to změňte: DELETE t1 FROM tabulka INNER JOIN ( SELECT id, COUNT(*) cnt FROM tabulka GROUP BY id HAVING cnt >1 ) ref USING (id) ↓ A jo, díky a omlouvam se, psala jsem narychlo. |
||
Kajman Profil |
#7 · Zasláno: 6. 4. 2013, 17:53:39
Tori:
Ale to nezachová jeden záznam v případě duplicit. |
||
Časová prodleva: 3 dny
|
|||
MartinR Profil |
#8 · Zasláno: 9. 4. 2013, 06:12:52
Jan Tvrdík:
mea culpa :) příště 2x číst a jednou myslet . .nebo 2x číst a 2x myslet |
||
Alphard Profil |
#9 · Zasláno: 9. 4. 2013, 10:10:25
Nejlepší rada je samozřejmě smazat nepovedený import a nahrát znovu. O konstruktivní řešení se pokusika Tori [#6]. Ale název vlákna "Smazání záznamů se sudým id" se mi zdá natolik sympaticky pro vyhledávače, že jsem chtěl uvést řešení.
|
||
Tori Profil |
Tak asi nejjednodušší možnost, jak to vyřešit jen přes databázi:
1) vytvořit tabulku tmp s totožnou strukturou jako je ta s duplicitními záznamy 2) do tabulky tmp přidat unikátní index přes sloupce, kterými se rozliší duplicitní záznam 3) INSERT IGNORE INTO tmp (sloupec1, sloupec2, ...) SELECT sloupec1, sloupec2, ... FROM tabulkaDuplicit |
||
Časová prodleva: 11 let
|
0