2010-03-16 6 views
1

J'essaie de migrer un site d'un système joomla vers un drupal. Le problème est que drupal a besoin de nom de fichier et de sourcepath dans la même rangée, mais joomla a seulement un nom de fichier. Je cherche un moyen d'ajouter sourcepath avant le nom de fichier dans toutes les lignes de cette colonne. Je pense que c'est l'instruction UPDATE que je devrais utiliser, mais je n'arrive pas à comprendre comment construire la requête.Aide à la requête SQL - fusionner une valeur à toutes les lignes d'une colonne

Il y a une personne avec un problème similaire, mais je ne trouve pas les réponses dans ce fil à mon problème utiles: http://www.daniweb.com/forums/showth...t+value&page=2

Toutes les suggestions?

Répondre

1

Pour ajouter une valeur d'une colonne au début d'une autre (en supposant les deux colonnes sont sur la même table):

update files 
set 
    filename = CONCAT(path, filename) 
from files 

(vous devrez peut-être corriger les noms nom de la table/colonne .. i » Je devine juste)

+3

Ou remplacez le chemin par un littéral de chaîne, par ex. "/ my/path/here /" si ce sera le même pour toutes les lignes. – tomfanning

+0

Ouais, je ferais juste: mettre à jour la table SET champ = "/ mon/chemin/ici /" + nom de fichier; – Jaxidian

0

@Dexter, merci de m'avoir amené à la fonction CONCAT! Il a résolu le problème. J'ai d'abord créé une nouvelle colonne appelée path et mis à jour toutes les lignes avec le chemin vers les images. Puis j'ai couru cette requête: UPDATE jos_joomgallery SET imgfilename = concat (chemin, imgfilename);

jos_joomgallery est la table, bien sûr. J'ai eu une erreur quand j'ai utilisé la commande FROM, apparemment il n'était pas nécessaire.

@tomfanning, je ne sais pas ce qu'est une chaîne littérale, j'ai un peu googlé mais je n'ai trouvé aucune information d'utilisation. Merci quand même.

@Jaxidan, je suppose que cela fonctionnerait, mais je ne peux pas comprendre comment référencer le nom de fichier à la colonne où ils sont stockés.