Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/08/2011, 09h29   #1
Membre du Club
 
Avatar de PIEPLU
 
Inscription : avril 2003
Messages : 299
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2003
Messages : 299
Points : 40
Points : 40
Envoyer un message via MSN à PIEPLU Envoyer un message via Skype™ à PIEPLU
Par défaut Passer d'un Select à un Update

Bonjour tout le monde, je cherche à passer cette SQL en Update


Code :
1
2
3
SELECT IF(LOCATE('(',`ville_entreprise`)>0,
  REPLACE(CONCAT(
    SUBSTRING(`ville_entreprise`,LOCATE('(',`ville_entreprise`)+1,LOCATE(')',`ville_entreprise`)-LOCATE('(',`ville_entreprise`)-1),' ',SUBSTRING(`ville_entreprise`,1,LOCATE('(',`ville_entreprise`)-1)),"' ","'")           ,`ville_entreprise`) as `ville_entreprise`, LOCATE('(',`ville_entreprise`), LOCATE(')',`ville_entreprise`) FROM `Temp`

Mais je n'y parviens pas, auriez vous la bonne méthode ?

Merci
__________________
Vincent Pieplu
Développeur Site Internet
PIEPLU est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 14h22   #2
Membre habitué
 
Inscription : septembre 2002
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 140
Points : 118
Points : 118
Salut,
Je l'ai écrite rapidement à partir de ton code, vérifie quand même :
Code :
1
2
3
4
UPDATE `Temp`
SET `ville_entreprise` = 
CONCAT(SUBSTRING(`ville_entreprise`,LOCATE('(',`ville_entreprise`)+1,LOCATE(')',`ville_entreprise`)-LOCATE('(',`ville_entreprise`)-1),' ',SUBSTRING(`ville_entreprise`,1,LOCATE('(',`ville_entreprise`)-1)),"' ","'"),`ville_entreprise`)
WHERE LOCATE('(',`ville_entreprise`)>0)
Si ça marche, un 'tit résolu
papa6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 14h45   #3
Membre habitué
 
Inscription : septembre 2002
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 140
Points : 118
Points : 118
Si tu veux un résultat convenable sans te prendre la tête avec une formule complexe, vérifie que tu n'aies pas de ville avec des doubles parenthèses :
Code :
1
2
3
SELECT *
FROM `Temp`
WHERE `ville_entreprise` LIKE '%(%(%'
Si cette requête te retourne un résultat vide, vérifie avec un SELECT le retour de cette requête avant d'appliquer un UPDATE :
Code :
1
2
3
SELECT TRIM(REPLACE(REPLACE(REPLACE(`ville_entreprise`, '(', ' '), ')', ' '), '  ', ' ')) AS ville_corrigee
FROM `Temp`
WHERE `ville_entreprise` LIKE '%(%)%'
Cette requête remplace chaque parenthèse, fermante ou ouvrante, par un espace, puis les 2 espaces par un seul.

Puis ton Update :
Code :
1
2
3
UPDATE `Temp`
SET `ville_entreprise` = TRIM(REPLACE(REPLACE(REPLACE(`ville_entreprise`, '(', ' '), ')', ' '), '  ', ' '))
WHERE `ville_entreprise` LIKE '%(%)%'
Bye
papa6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h10.


 
 
 
 
Partenaires

Hébergement Web