Besoin d'aide pour requête SQL - SQL/NoSQL - Programmation
Marsh Posté le 31-07-2007 à 15:09:08
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
Marsh Posté le 31-07-2007 à 15:10:47
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.
Marsh Posté le 31-07-2007 à 15:37:40
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
Marsh Posté le 01-08-2007 à 15:13:18
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?
Marsh Posté le 01-08-2007 à 15:18:47
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?
Marsh Posté le 01-08-2007 à 18:52:32
Je veux juste qu'on m'aide, pas apprendre le langage, c'est pas mon métier
Marsh Posté le 02-08-2007 à 09:07:57
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é...
Marsh Posté le 02-08-2007 à 13:11:19
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?
Marsh Posté le 02-08-2007 à 13:47:49
Citation : REPLACE(str,from_str,to_str) |
Qu'est ce qu'il te manque exactement?
Comment as-tu essayé de l'utiliser?
Montre nous donc ta requête!
Marsh Posté le 02-08-2007 à 14:18:37
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.)
Marsh Posté le 02-08-2007 à 14:24:56
ça fonctionne très bien et ta requete remonte exactement ce qu'il faut ( a savoir POWERBOX).
Marsh Posté le 02-08-2007 à 15:00:44
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.
Marsh Posté le 02-08-2007 à 15:39:17
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. |
Code :
|
Mais ce n'est que de l'affichage hein, les données ne sont pas modifiées
Marsh Posté le 02-08-2007 à 15:40:21
UPDATE nom_table SET description=REPLACE(description, 'TUNINGBOX', 'POWERBOX') WHERE description LIKE "%TUNINGBOX%"
ça le fait pas?
edit : pikti m'a devancé
Marsh Posté le 02-08-2007 à 15:42:21
rufo a écrit : UPDATE nom_table SET description=REPLACE(description, 'TUNINGBOX', 'POWERBOX') WHERE description LIKE "%TUNINGBOX%" |
oui, mais toi t'as pas oublié de mettre un where , j'ai donc édité
Marsh Posté le 02-08-2007 à 16:12:12
donc la requête de rufo est bonne? Je peux l'utiliser en mettant juste mon nom de table?
Marsh Posté le 02-08-2007 à 16:30:11
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
Marsh Posté le 02-08-2007 à 18:40:09
pikti a écrit : |
le where sert à rien
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
Marsh Posté le 03-08-2007 à 12:20:07
Ok, voici la requête correcte. Merci à tous
UPDATE products_description2 SET products_description=REPLACE(products_description, 'TUNINGBOX', 'POWERBOX') WHERE products_description LIKE "%TUNINGBOX%"
Marsh Posté le 31-07-2007 à 14:56:46
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?