Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
588 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Besoin d'aide pour requête SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Besoin d'aide pour requête SQL

n°1593805
Bennyb666
http://www.bc-elec.com
Posté le 31-07-2007 à 14:56:46  profilanswer
 

Bonjour,
 
J'ai une catégorie de produits en vente où la marque figure dans l'annonce.  Le fabricant préfererai que je ne notifie pas la marque, dès lors je veux modifie celle-ci.
 
Comme il y à 200 produits, je me vois mal modifier à la main.  Il faudrait donc sans doute passer par phpmyadmin et faire une sorte de requête:
 
Modifie "MARQUE" par "AUTRE MARQUE" dans toutes les descrptions de produits où tu trouves "MARQUE" dans le champ description.
 
 
Ca done quoi en "bon" sql? :d

mood
Publicité
Posté le 31-07-2007 à 14:56:46  profilanswer
 

n°1593822
Akash31
Posté le 31-07-2007 à 15:09:08  profilanswer
 

ca donnerais  
UPDATE nom_table SET description="AUTRE MARQUE" WHERE description="MARQUE"  
 
à vérifier, je n'ai que très peu de connaisance en sql

n°1593823
Bennyb666
http://www.bc-elec.com
Posté le 31-07-2007 à 15:10:47  profilanswer
 

non ce n'est pas juste :/
 
Le champ description ne comprend pas 'juste' la marque, mais comprend du blabla et dans ce blabla figure la marque.
 

n°1593838
Akash31
Posté le 31-07-2007 à 15:37:40  profilanswer
 

tu veut remplacer  "******MARQUE******"  
                   par  "******AUTRE MARQUE******"?
Si oui, il e faudrait créer une fonction qui te fasse ca ...
Si non,
UPDATE nom_table SET description="AUTRE MARQUE" WHERE description LIKE "%MARQUE%"
toujours à vérifier :)


Message édité par Akash31 le 31-07-2007 à 15:37:52
n°1594420
Bennyb666
http://www.bc-elec.com
Posté le 01-08-2007 à 15:13:18  profilanswer
 

Cela ressemble à ton hypothèse 1.
 
 
Donc en gros il faut cette fonction:
 
 
Parcours toutes les descriptions des produits, et lorsque tu rencontres quelque part dans une description, la marque "1", remplace la par la marque "2".
 
Et ainsi de suite pour tous les produits.
 
Qui se dévouent pour me pondre ça en sql? :d

n°1594426
anapajari
s/travail/glanding on hfr/gs;
Posté le 01-08-2007 à 15:18:47  profilanswer
 

Replace est une fonction a peu près standard, il est plus que probable qu'elle existe sur le SGBD que tu utilises...
 
Quelqu'un se devoue pour lire la doc de son SGBD? :o

n°1594512
Bennyb666
http://www.bc-elec.com
Posté le 01-08-2007 à 17:08:58  profilanswer
 

en mysql siouplé :o

n°1594532
rufo
Pas me confondre avec Lycos!
Posté le 01-08-2007 à 17:20:10  profilanswer
 

replace existe bien en mysql.

n°1594561
anapajari
s/travail/glanding on hfr/gs;
Posté le 01-08-2007 à 17:54:42  profilanswer
 
n°1594579
Bennyb666
http://www.bc-elec.com
Posté le 01-08-2007 à 18:52:32  profilanswer
 

Je veux juste qu'on m'aide, pas apprendre le langage, c'est pas mon métier :/

mood
Publicité
Posté le 01-08-2007 à 18:52:32  profilanswer
 

n°1594710
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-08-2007 à 09:07:57  profilanswer
 

aide toi, et le forum t'aidera ...
 
en l'occurence fais au moins l'effort de lire le lien que je t'ai donné au dessus, toute l'utilisation de la fonction replace y est expliqué...

n°1594904
Bennyb666
http://www.bc-elec.com
Posté le 02-08-2007 à 13:11:19  profilanswer
 

J'ai lu. La fonction replace est notifiée oui... Mais tout ce qu'il y à autour non.
 
Comment donc spécifier à cette fonction Où aller remplacer, par exemple.
 
Et en l'occurence, cette fonction est elle utilisable dans phpmyadmin?

n°1594932
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-08-2007 à 13:47:49  profilanswer
 

Citation :

REPLACE(str,from_str,to_str)
 
Retourne une chaîne de caractères str dont toutes les occurrences de la chaîne from_str sont remplacées par la chaîne to_str :
 
mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'
 
Cette fonction gère les caractères multi-octets.


Qu'est ce qu'il te manque exactement?
Comment as-tu essayé de l'utiliser?
Montre nous donc ta requête!

n°1594946
Bennyb666
http://www.bc-elec.com
Posté le 02-08-2007 à 14:18:37  profilanswer
 

Cela ne fonctionne pas sachant qu'à priori il ne sait pas où aller remplacer et que de plus je ne veux pas remplacer une partie d'un mot mais un mot en entier.
 
Voici ce que j'ai tapé dans le SQL:
requête SQL:  
SELECT REPLACE (
'TUNINGBOX',
'TUNINGBOX',
'POWERBOX'
)  
 
et voici le résultat:
Affichage des enregistrements 0 - 0 (1 total, traitement: 0.0002 sec.)

n°1594948
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-08-2007 à 14:24:56  profilanswer
 

ça fonctionne très bien et ta requete remonte exactement ce qu'il faut ( a savoir POWERBOX).

n°1594978
Bennyb666
http://www.bc-elec.com
Posté le 02-08-2007 à 15:00:44  profilanswer
 

non cela ne fonctionne pas vu que cela n'a rien remplacé du tout.
 
 
Je veux donc dans toutes mes descriptions  de produit, remplacer TUNINGBOX, par POWERBOX.

n°1595008
pikti
I’ve done worse
Posté le 02-08-2007 à 15:39:17  profilanswer
 

Bennyb666 a écrit :

Cela ne fonctionne pas sachant qu'à priori il ne sait pas où aller remplacer et que de plus je ne veux pas remplacer une partie d'un mot mais un mot en entier.
 
Voici ce que j'ai tapé dans le SQL:
requête SQL:  
SELECT REPLACE (
'TUNINGBOX',
'TUNINGBOX',
'POWERBOX'
)  
 
et voici le résultat:
Affichage des enregistrements 0 - 0 (1 total, traitement: 0.0002 sec.)


 

Code :
  1. select replace(tonChamp, 'tuningbox', 'powerbox') from taTable


 
Mais ce n'est que de l'affichage hein, les données ne sont pas modifiées


Message édité par pikti le 02-08-2007 à 15:41:25
n°1595009
rufo
Pas me confondre avec Lycos!
Posté le 02-08-2007 à 15:40:21  profilanswer
 

UPDATE nom_table SET description=REPLACE(description, 'TUNINGBOX', 'POWERBOX') WHERE description LIKE "%TUNINGBOX%"  
 
ça le fait pas?
 
edit : pikti m'a devancé :/

Message cité 1 fois
Message édité par rufo le 02-08-2007 à 15:40:59
n°1595010
pikti
I’ve done worse
Posté le 02-08-2007 à 15:42:21  profilanswer
 

rufo a écrit :

UPDATE nom_table SET description=REPLACE(description, 'TUNINGBOX', 'POWERBOX') WHERE description LIKE "%TUNINGBOX%"  
 
ça le fait pas?
 
edit : pikti m'a devancé :/


 
oui, mais toi t'as pas oublié de mettre un where :p, j'ai donc édité

n°1595045
Bennyb666
http://www.bc-elec.com
Posté le 02-08-2007 à 16:12:12  profilanswer
 

donc la requête de rufo est bonne? Je peux l'utiliser en mettant juste mon nom de table?

n°1595064
rufo
Pas me confondre avec Lycos!
Posté le 02-08-2007 à 16:30:11  profilanswer
 

Bennyb666 a écrit :

donc la requête de rufo est bonne? Je peux l'utiliser en mettant juste mon nom de table?


 
ben j'ai pas testé, mais toi, testes, tu verras bien si ça fait ce que tu veux ;)

n°1595172
anapajari
s/travail/glanding on hfr/gs;
Posté le 02-08-2007 à 18:40:09  profilanswer
 

pikti a écrit :


oui, mais toi t'as pas oublié de mettre un where :p, j'ai donc édité


le where sert à rien :o
si y'a pas le mot ça va pas le remplacer ...  
Et la vous me dites oui mais c'est pour optimiser la requête en limitant le nombre de résultats traités.
ça va dépendre des indexs mais le like '%...%', 90% de chance qu'il pourrave les perfs :o

n°1595418
Bennyb666
http://www.bc-elec.com
Posté le 03-08-2007 à 12:20:07  profilanswer
 

Ok, voici la requête correcte.  Merci à tous :)
 
 
UPDATE products_description2 SET products_description=REPLACE(products_description, 'TUNINGBOX', 'POWERBOX') WHERE products_description LIKE "%TUNINGBOX%"

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Besoin d'aide pour requête SQL

 

Sujets relatifs
SQL server 2000 backup et restauration[SQL] Besoin d'aide sur les attributs pour une requete
[résolu] Besoin d'aide pour écrire une requête SQL compliquéepblm de requete SQL besoin aide !!!
[Sql] Besoin d'aide pour une requête ( simple pourtant ... ) [résolu]Besoin d'aide pour une requete SQL
Erreur d'execution 94 avec MS VB ==> besoin aide requete SQL[SQL][Oracle]Besoin d'aide pour une requête!
[SQL] Besoin d'aide pour céer un requete[SQL Server] besoin d'aide pour requete de maj
Plus de sujets relatifs à : Besoin d'aide pour requête SQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR