2017-10-18 30 views
-1

J'ai regardé des exemples dans Stackoverflow mais aucun n'a fonctionné. Il s'avère que la table que j'ai reçu ne contient pas de colonne avec les "ids" des vidéos. J'ai donc besoin de ces "ids" d'une colonne appelée "embed" qui contient un "iframe" dans l'URL de qui est le "id" de chaque vidéo. Je sais qu'avec PHP je peux faire une regex et obtenir cette valeur mais j'ai besoin de l'obtenir de Mysql pour faire une comparaison avec une autre table qui contient ces "ids".Mysql - Obtenir une partie d'une chaîne de texte

La colonne "embed" contient des valeurs de type:

<iframe src="https://www.example.com/embed/9526128" frameborder="0" height="481" width="608" scrolling="no"></iframe> 
<iframe src="https://www.example.com/embed/ph193842d54b87g" frameborder="0" height="481" width="608" scrolling="no"></iframe> 

Et les "ids" vous devriez obtenir serait la suivante (respectivement):

9526128 
ph193842d54b87g 

J'ai testé avec le "substring" fonction mais étant "ids" avec la longueur variable ont été me donner des problèmes ...

Ajout d'une question:

SUBSTRING_INDEX(embed, '/', -2) 
+0

S'il vous plaît ajouter la requête que vous avez essayé jusqu'à présent. –

+0

done la requête a été ajoutée – Kokox

+0

afin que la colonne embed contienne l'URL complète commençant par iframe as String? Est ce bien? –

Répondre

1

Ok, je l'ai trouvé une solution pour ma question, je ne sais pas si ce sera l'idéal, mais il est:

SUBSTRING_INDEX(SUBSTRING_INDEX(embed, '/', -2), '"', 1) 

Où « embed » est la colonne où les « iframes » sont situé.

0

J'ai trouvé une autre solution qui fonctionnera pour n'importe quel url dans lequel id vient après 'embed' mot. Alors que votre solution ne fonctionne que lorsque l'ID commence après la 2ème occurrence de '/' à partir du côté droit de la chaîne.

S'il vous plaît essayer:

select @len:= instr(embed,'embed') from yourTablname; 

SELECT Substring(embed, 
       @len+6, 
       locate('"', 
         embed, 
         @len 
         )-(@len+6) 
       ) as id 
From youTablname; 

Click here for Demo

Hope it helps!

+0

Avez-vous essayé la requête ci-dessus? –