2010-11-23 2 views
1

Exemple dans la colonne x chaîne contenant "toto" lieu/ajouter la chaîne "gluant" Avant:MySQL: pour toutes les lignes à l'avant

column x 
yummy grains 
blah blah 
foobar 1 
sugar daddy 
foobar 2 
fiber one 

Ce que je veux après:

column x 
yummy grains 
blah blah 
gooey foobar 1 
sugar daddy 
gooey foobar 2 
fiber one 
+0

Il ya une autre transformation: "sugar daddy" devient "sugar dadday" - je suppose que c'est une faute de frappe. – Piskvor

+0

@Piskvor, c'est vrai que ce serait une commande difficile qui pourrait produire ce genre de résultat! –

Répondre

2
UPDATE `yourtable` 
    SET `column x`=CONCAT('gooey ',`column x`) 
    WHERE `column x` LIKE '%foobar%'; 

Notez qu'il s'agit d'une requête (comme en témoigne la dernière ;).

détaillée (pas dans l'ordre syntaxiquement correct):

UPDATE yourtable - pour les lignes dans le tableau yourtable
WHERE column x - pour les lignes, où la colonne column x ...
LIKE '%foobar%' - ... il y a foobar quelque part dans la chaîne (note the wildcards at both ends)
SET column x= - définir column x de la ligne à la valeur suivante: CONCAT('gooey ',column x) - concaténer (additionner), la chaîne de caractères 'gooey 'et quelle que soit la chaîne était column x.

+0

quelle serait la syntaxe si je voulais le même préfixe sur les chaînes avec «grains»? pourrais-je simplement mettre une virgule après% foobar%,% grains% ';? –

+1

@Captain Claptrap: ajout d'une explication de jeton par jeton. Si vous vouliez mettre le même préfixe sur les chaînes avec 'foobar' et/ou' grains', vous devriez conserver la syntaxe d'expression pour 'WHERE':' WHERE column_x LIKE '% foobar%' OU column_x LIKE '% grains % ''Plus d'informations sur la syntaxe d'expression ici: http://dev.mysql.com/doc/refman/5.0/en/expressions.html – Piskvor

+0

exceptionnelle! Je vous remercie. –

Questions connexes