Un champ dans l'une de mes tables MySQL contient une liste séparée par des virgules d'URL vers des images jpg. Je souhaite supprimer la première URL de la liste, jusqu'à la première virgule incluse.
J'ai trouvé de nombreux exemples de suppression de la fin de la liste ou de suppression du premier x nombre de caractères du début de la liste. Le problème ici est que la liste peut contenir entre deux et cent URL séparées par des virgules et toutes les URL peuvent varier en longueur.
Un exemple du contenu de ce champ pourrait ressembler à:
Je souhaite uniquement supprimer la première URL de la liste et la première virgule.
3 Réponses :
select 'https://google.com,https://youtube.com' as url, SUBSTRING(url, POSITION("," IN url)+1) it will help you in this case
declare @myvar varchar(100) set @myvar:= 'wantedtoremovethisurl.combeforethecomma,showthistextthough' select replace(@myvar,left(@myvar,instr(@myvar,',')),'') You'll have to work it out if there is no comma
En supposant que toutes les URL sont séparées par des virgules, vous avez probablement besoin de quelque chose comme ceci
SELECT SUBSTR(REPLACE(Column_Name,SUBSTRING_INDEX(ColumnName,',',1),''),2) FROM YourTable
OR
SELECT SUBSTR(ColumnName,LOCATE(',',ColumnName)+1) FROM YourTable;
Merci! Je l'exécute lors de l'importation et je souhaite mettre à jour la table sans la première URL de chaque liste, je l'ai donc écrite comme ceci pour qu'elle s'exécute après l'importation. mettre à jour columnName set columnName = SUBSTR (columnName, LOCATE (',', columnName) +1); Fonctionne très bien!
utilisez
INSTR
etREPLACE