2010-05-27 11 views
0

J'ai une table, dont les champs sontComment concaténer du texte sur une entrée de base de données existante?

id, name, link 

le lien contient le nom de la page comme « lien » = « index.php ». Maintenant, je veux mettre à jour ce champ et ajouter "page =" devant "index.php". En utilisant cette méthode, je voudrais mettre à jour chaque entrée dans ma table.

Ma syntaxe SQL souhaitée doit être quelque chose comme ça

UPDATE mytable set link= 'page=' + <existing value of link>; 

Quelqu'un sait ce que pour y parvenir?

Répondre

4

Si vous utilisez MySQL, vous pouvez essayer:

UPDATE mytable SET link = CONCAT("page:", link) 
2
UPDATE mytable Set link = "page:" || link 
+0

cela n'a pas fonctionné, il a changé tous mes lien vers « 0 » – Starx

+0

@Starx: qui laisse perplexe - il devrait travailler . La condition WHERE 1 dans votre question est inutile; il est impliqué par l'absence de clause WHERE. Vous dites que les liens ont été changés à 0? Je suppose que si un SGBD a fait quelque chose ... scrappily ... alors si vous utilisez '+' à la place du '||' alors vous pourriez obtenir les deux chaînes converties en nombres, ce qui échoue, menant à une valeur factice de zéro. Cependant, vous devez avoir mal saisi la clause SET et le SGBD doit être bogué, donc c'est invraisemblable. –

+0

J'ai supprimé l'instruction WHERE, et peut-être la raison pour laquelle votre sql ne fonctionne pas est le fait que j'utilise mysql. – Starx