Requete SQL sur les doublons ?trop compliqué!!!

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

bigs32
WRInaute impliqué
WRInaute impliqué
 
Messages: 467
Inscription: Lun Mai 08, 2006 22:48

Requete SQL sur les doublons ?trop compliqué!!!

Message le Mar Mar 11, 2008 17:55

bonjour
dans ma base SQL , chaque enregistrement a un titre écrit en deux fois sur le meme champ
exemple :AC Digne les Bains en 2 fois ect..
voici d'autres exemples
ActivaSport ActivaSport
AC Digne les Bains AC Digne les Bains
A.S.Caluire Athlétisme A.S.Caluire Athlétisme
Annuaire Coaching Annuaire Coaching
Athlé St-Julien 74 Athlé St-Julien 74

j'aimerais en enlever le deuxième titre pour n'en garder qu'un
mais je n'arrive pas à trouver une requete SQL ou PHP pour faire cà.
J'ai essayé avec explode avec comme séparateur \t mais la règle ne marche pas pour tout

AVEZ VOUS UNE IDEE A ME PROPOSER

MERCI D AVANCE AUX PRO DU SQL


ortolojf
WRInaute accro
WRInaute accro
 
Messages: 1211
Inscription: Mer Aoû 14, 2002 13:30

Message le Mar Mar 11, 2008 18:22

Bonjour
Pour faire une reconnaissance automatique d'expression régulière dans un script PHP, il faudrait que tu ais sur une table différente, les noms des titres que tu cherches à isoler.

Sinon, je ne vois pas coment un algorithme automatique pourrait résoudre le problème.

Ou bien éventuellement, tu pourrais transférer ta table SQL sur ton ordinateur en local, et faire le traitement de manière manuelle, avec le client mysql.

Une chose est sûre: S'il n'y a pas de moyen de faire une reconnaissance automatique d'expressions régulières, adieu l'automaticité, bonjour le processus manuel.

Eventuellement, si tu as toujours la source des données, tu pourrais refaire la table ( une autre table ), en ne sélectionnant qu'un titre à chaque fois, puis en faisant à chaque sélection, une recherche dans la première table par expression régulière, puis en affectant les autres champs de la ligne lue dans la première table.

Bien à toi.
Amicalement.

Jean-François Ortolo


lupuz
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 207
Inscription: Mer Mar 15, 2006 23:41

Message le Mar Mar 11, 2008 19:57

En SQL, ca me compliqué a faire.

Par contre, tu dois pouvoir facilement écrire un petit script comptant le nombre de mots dans le champ avant de remettre à jour l'enregistrement.

ex :

<?
$arrayMots = explode($contenuDeTonChamps);
for($num=0; $num <= (count($arrayMots )/2), $num++)
$nouveauContenu .= $arrayMots[$num];

?>


Marie-Aude
WRInaute accro
WRInaute accro
 
Messages: 4965
Inscription: Lun Juin 05, 2006 14:15

Message le Mar Mar 11, 2008 20:39

L'idée serait de trouver le premier espace, et d'isoler la chaine jusqu'au premier espace.
Ensuite de rechercher cette chaine "plus loin" dans le champs, et de voir sa position.
Puis de supprimer tout ce qui vient après.

En syntaxe excel, ça donne
GAUCHE(A1;CHERCHE(GAUCHE(A1;CHERCHE(" ";A1;1)-1);A1;CHERCHE(" ";A1;1))-2)

en imaginant que le texte est dans la cellule A1 (je l'ai fait en vitesse sous excel pour vérifier que ça marche)

En moins dense :
Le texte est en A1
En B1 on détermine la position du premier espace :
CHERCHE(" ";A1;1)
En C1 on extrait la chaine du premier caractère jusqu'à avant le premier espace :
GAUCHE(A1;B1-1)
En D1 on trouve la deuxième occurrence de la chaine extraite : CHERCHE(C1;A1;B1)
En résultat on prend à gauche de la position de cette deuxième occurrence :
GAUCHE(A1;D1-2)

Je te laisse transformer avec les fonctions php


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 870
Inscription: Mar Aoû 05, 2003 14:49

Message le Mar Mar 11, 2008 21:33

si la règle est bien respecté normalement ton champs fait 2 fois la taille + 1 (espace)

Code: Tout sélectionner
update `table` set `champ` = substr( `champ`, 1, strlen( `champ` ) / 2 );


fais une sauvegarde avant quand même ;-)

bigs32
WRInaute impliqué
WRInaute impliqué
 
Messages: 467
Inscription: Lun Mai 08, 2006 22:48

Message le Mer Mar 12, 2008 1:32

merci , je vais essayer de faire un test


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités