Maison >base de données >tutoriel mysql >Comment extraire le dernier élément d'une chaîne séparée par une barre oblique en SQL ?

Comment extraire le dernier élément d'une chaîne séparée par une barre oblique en SQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 13:26:14667parcourir

How to Extract the Last Element from a Forward-Slash Separated String in SQL?

Extraction du dernier élément de la chaîne fractionnée dans la base de données

Dans un tableau composé de chaînes contenant plusieurs éléments séparés par des barres obliques (/), le l'objectif est d'extraire le dernier élément de chaque chaîne. Par exemple, étant donné les chaînes suivantes :

Articles/Search/ArtMID/2681/ArticleID/2218/Diet.aspx
OurStory/MeettheFoodieandtheMD.aspx
TheFood/OurMenu.aspx

Le résultat souhaité doit être :

Diet.aspx
MeettheFoodieandtheMD.aspx
OurMenu.aspx

Approche SQL

Pour y parvenir dans SQL, la requête suivante peut être utilisée :

SELECT SUBSTRING( string , LEN(string) -  CHARINDEX('/',REVERSE(string)) + 2  , LEN(string)  ) FROM SAMPLE;

Cette requête fonctionne par :

  1. Utiliser la fonction REVERSE() pour inverser la chaîne, ce qui place le dernier élément au début.
  2. Utiliser CHARINDEX() avec la chaîne inversée pour trouver la position de le dernier /.
  3. Calcul de la position de départ du dernier élément en soustrayant la position du dernier '/' de la longueur totale de la chaîne d'origine et en ajoutant 2 (pour tenir compte de la position après le '/' et de la longueur de l'élément).
  4. Utilisation de la fonction SUBSTRING() pour extraire le dernier élément en fonction de la position de départ et de la longueur calculées.

Cette approche extrait efficacement le dernier élément de chaque chaîne en inversant la chaîne, en localisant le dernier /, puis en utilisant ces résultats pour déterminer le point de départ de l'extraction de la sous-chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn