Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/10/2011, 01h00   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 4
Points : 0
Points : 0
Par défaut Remplacer du contenu possédant une partie variable

Bonjour à tous,
Je vous explique mon petit souci. Depuis hier, wordpress pose des petits soucis avec les vidéos embarquées simplement citées par leur url dans les news. (et automatiquement transformé en vidéo.

Pour éviter ce genre problème, je souhaite changer dans ma base de donnée les liens vidéos par le code embedded normal:

soit:

Citation:
http://vimeo.com/15540603
doit devenir ceci:
Citation:
<iframe src="http://player.vimeo.com/video/15540603?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>
Le souci est que si je souhaite faire un batch sur ma table, je ne sais pas comment formuler ma requête pour ignorer la partie variable et placer du code après cette partie variable.

c'est compréhensible?

merci !
bidiman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/10/2011, 10h38   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 643
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 643
Points : 2 639
Points : 2 639
bonjour quel est votre SGBD ?

edit : je suis mal reveillé... en fait il suffit d'utiliser un substring vu que votre donnée actuel a une partie fixe à gauche.

Code :
1
2
3
 
SELECT substr(trim(ma_col), 17, length(trim(ma_col))) 
FROM ma_table
il faudra jouer avec les chiffres pour bien fenêtrer votre chaîne de base
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2011, 15h43   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 4
Points : 0
Points : 0
Mon SGDB est MySQL.

Punkoff, je ne comprend pas trim(ma_col)


Je crois que je devrais faire quelque chose comme çà:


Pour après les chiffres:
Je ne sais pas comment l'écrire en SQL,

-Pour toute les variables post de ma table news
-trouver http://vimeo.com/
-se positionner 8 places plus loin que la fin de cette chaine (afin d'être juste après la partie variable
-ajouter ma string "?title=0&amp......>"

pour avant les chiffres, je suppose que ceci devrait marcher.:
Code :
1
2
SELECT str_replace("http://vimeo.com/","<iframe src="http://player.vimeo.com/video/",$ma_news)
FROM ma_table
bien qu'il me semble qu'il manque dans ce dernier code la variable à laquelle je souhaite m'attaquer provenant de la table cible.
bidiman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2011, 16h02   #4
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 643
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 643
Points : 2 639
Points : 2 639
bonjour,

trim sert à enlever les blancs.
Substring sert à ne prendre qu'une partie d'une chaîne de caractere.

Donc :
Code :
1
2
 
UPDATE ma_table SET ma_news = '<iframe src="http://player.vimeo.com/video/' || substr(trim(ma_news), 17, length(trim(ma_news))) || '?title=0&amp;byline=0&amp;portrait=0" width="400" height="225" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>'
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 11h41   #5
Invité de passage
 
Inscription : septembre 2008
Messages : 4
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 4
Points : 0
Points : 0
Désolé pour la réponse tardive, mais la notification mail n'a pas marché comme il se doit..

si je comprend la requête que tu as écrite:
-mettre à jour la variable ma_news de ma table ma_table
-en la faisant commencer par <iframe.....
-ajouter à cela
-on récupère le morceau de lien vidéo situé entre 17 et la fin de ma chaîne
-et on le complète par ?title=0&amp....

Si c'est bien cela que ta requête fait, ca ne marchera pas, car ma variable ma_news possède un texte de longueur différente pour chaque news avant le lien de la vidéo et parfait également après.

Ma variable ma_news est du type:
Citation:
blabla_before_news_http://www.vimeo.com/123456_blablaafternews
et parfois également plusieurs vidéos...(blabla_video_blabla_video_blabla,..)

Va-t-il falloir s'orienter vers une solution où
-on écrit la nouvelle variable ma_news en concaténant chaque bout de phrase et en y insérant ce qui manque. (comme proposé dans ton dernier message)

ou

-en utilisant une fonction replace améliorée qui est capable de changer, ajouter un morceau de phrase 8 colonnes plus loin que le bout de phrase trouvé.

help..
bidiman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 12h09   #6
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 643
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 643
Points : 2 639
Points : 2 639
Citation:
Envoyé par punkoff Voir le message
bonjour quel est votre SGBD ?

edit : je suis mal reveillé... en fait il suffit d'utiliser un substring vu que votre donnée actuel a une partie fixe à gauche.
Faut lire les postes et comprendre les solutions posées.

Là vous aviez mal exprimé votre besoin


Donc pour répondre à cette demande :
Citation:
en utilisant une fonction replace améliorée qui est capable de changer, ajouter un morceau de phrase 8 colonnes plus loin que le bout de phrase trouvé.
Je pense que c'est possible oui.

Cf la doc de MySql
http://dev.mysql.com/doc/refman/5.5/...function_instr


Ceci vous permettra de recherche l'index de "http://www.vimeo.com/" puis de rajouter assez de nombre de carracteres pour que le substring soit correct.

Testez cette fois-ci
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h09.


 
 
 
 
Partenaires

Hébergement Web