1
votes

Comment supprimer la première partie d'une chaîne dans MySQL jusqu'à et y compris la première virgule?

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 à:

http://foo.com/51623/gfhfksdf/5956s/00.jpg,http://foo.com/51623/gfhfksdf/5956s/00.jpg,http://foo.com/51623 /gfhfksdf/5956s/01.jpg,http://foo.com/51623/gfhfksdf/5956s/02.jpg,http://foo.com/51623/gfhfksdf/5956s/03.jpg

Je souhaite uniquement supprimer la première URL de la liste et la première virgule.


1 commentaires

utilisez INSTR et REPLACE


3 Réponses :


0
votes
select 'https://google.com,https://youtube.com' as url, SUBSTRING(url, POSITION("," IN url)+1)
it will help you in this case

0 commentaires

0
votes
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

0 commentaires

1
votes

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;


1 commentaires

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!