Bonjour,
J'ai regardé sur le forum, c'est une problématique qui revient apparemment régulièrement, mais je n'ai pas trouvé la réponse qui correspond à mon besoin.
J'ai un table nommée sources, une seule colonne nommée mots, type VARCAR
Je dois créer une liste de mot à partir, soit de fichier csv que j'ai en ma possession, et je dédoublonne directement lors de l'import, soit j'importe les fichiers csv et je dédoublonne après.
J'y ai passé l'après midi et rien à faire, rien ne fonctionne :
Importer en supprimant les doublons lors de l’import d’une table avec une seule colonne :
SUPPRIMER LES DOUBLONS D’UNE TABLE EXISTANTE SUR UNE COLONNE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 INSERT INTO liste_mots_source (mots) SELECT mots FROM liste_mots_dico01 WHERE NOT EXISTS ( SELECT 1 FROM liste_mots_source WHERE liste_mots_source.mots = liste_mots_dico01.mots );
IMPORT D'UN FICHIER CSV ET DEDOUBLONAGE A LA VOLE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CREATE TABLE temp_table AS SELECT mots, MIN(mots) AS min_id FROM liste_mots_source GROUP BY mots HAVING COUNT(*) > 1; DELETE FROM liste_mots_source WHERE mots IN ( SELECT mots FROM temp_table ); DROP TABLE temp_table;
Voilà, cela decrait être simple en théorie, mais rien y fait, j'ai toujours des doublons, ou je n'ai plus du tout de valeur, par exemple, si le mot abandon apparait 3 fois, les trois occurences sont supprimées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 -- Création de la table temporaire CREATE TEMPORARY TABLE temp_sources ( mots VARCHAR(255) ); -- Import des données du fichier CSV dans la table temporaire LOAD DATA INFILE '/chemin/vers/le/fichier.csv' INTO TABLE temp_sources FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS; -- Insertion des enregistrements non dupliqués de la table temporaire dans la table "sources" INSERT IGNORE INTO sources (mots) SELECT mots FROM temp_sources; -- Suppression de la table temporaire DROP TABLE temp_sources;
J'utilise phpMyadmin, je n'ai pas accès à un serveur, du coup, c'est pas top non plus.
Si quelqu'un peut m'aider, cela serai sympa.
Patrice
Partager