Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako sa zbaviť duplicity v MySQL

Ak vaše MySQL tabuľka obsahuje stovky alebo tisíce záznamov , nechceš ručne prezrieť každý z nich sa snaží identifikovať duplicitné záznamy . MySQL nemá jediný dotaz , ktorý môžete použiť na odstránenie duplicitných záznamov v tabuľke , ale môžete použiť kombináciu otázok a spúšťať ich spoločne odstrániť vaše zdvojnásobí . Aj keď vaše tabuľka používa primárny kľúč pre jednoznačnú identifikáciu záznamov , môžete odstrániť duplicity tým , že vyberiete polia primárneho kľúča vo vašich otázok . Pokyny dovolená 1

Prihláste sa k databáze MySQL a prístup k dopytovací nástroj
2

zadajte nasledujúci dotaz : .

Vytvoriť dočasný TABLE temp SELECT DISTINCT col1 , col2 , col3 FROM table_name GROUP BY col1 , col2 , col3 S COUNT ( * ) > 1 ;

vytvorí dočasnú tabuľku , ktorá kontroluje tabuľku dodaný " table_name " , a keď nájde duplicitné záznam , sa vloží , že duplicitné do dočasnej tabuľky , ale iba raz . Napríklad , ak " table_name " má tri položky : " Jim, " " Bob " a " Bob " , " temp " tabuľka bude mať jeden záznam len " Bob " . Ak " col1 " sa správa ako pole primárneho kľúča v tabuľke , nezahŕňajú " col1 " v dotaze a jednoducho vyberie ďalšie dva stĺpce
3

zadajte nasledujúci dotaz : .

DELETE FROM TABLE_NAME WHERE ( col1 , col2 , col3 ) IN ( SELECT col1 , col2 , col3 FROM temp ) ;

Tento dotaz kontroluje každý záznam v " table_name " a odstráni všetky záznamy , ktoré majú duplicitné , vrátane originálu . Napríklad , v prípade , že tabuľka má tri položky , " Jim " , " Bob " a " Bob " , dotaz bude mazať ako " Bob " záznamy , odchádzajúci jediný " Jim " v " table_name . " Opäť platí , odstrániť odkazy na " col1 " na otázku , či " col1 " je pole primárneho kľúča
4

zadajte nasledujúci dotaz : .

INSERT INTO table_name ( col1 , COL2 , col3 ) SELECT col1 , col2 , col3 FROM Temp " . table_name "

dotaz v podstate kopíruje všetky záznamy z dočasnej tabuľky a vloží späť do Ak v tomto okamihu " table_name " je iba " Jim " a " Temp " má iba " Bob " , po dotaze, " table_name " bude mať " Jim " a " Bob " záznamy , zatiaľ čo dočasná tabuľka dostane vymazané . Nezabudnite odstrániť " COL1 " , odkazy, ak je to primárny kľúč .
5

Vykonať všetky otázky .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené