Section courante

A propos

Section administrative du site

SUBSTRING_INDEX

Sous chaîne de caractères index
MySQL  

Syntaxe

SubString_Index(Chaine,delim,Longueur)

Paramètres

Nom Description
Chaine Ce paramètre permet d'indiquer la chaîne de caractères
delim Ce paramètre permet d'indiquer le séparateur dans la chaîne de caractères
Longueur Ce paramètre permet d'indiquer le nombre d'occurrence dans la chaîne de caractères de séparateur

Description

Cette fonction permet de retourner la position indexé d'une sous-chaîne de caractères contenu dans une chaîne de caractères.

Exemples

Voici quelques exemples typiques de l'utilisation de cette fonction :

  1. SELECT "SubString_Index('Bonjour le monde !','o',1)=" As Text, SubString_Index('Bonjour le monde !','o',1) As Result UNION
  2. SELECT "SubString_Index('Bonjour le monde !',' ',4)=" As Text, SubString_Index('Bonjour le monde !',' ',4) As Result UNION
  3. SELECT "SubString_Index('Bonjour le monde !',' ',7)=" As Text, SubString_Index('Bonjour le monde !',' ',7) As Result

on obtiendra le résultat suivant :

Text Result
SubString_Index('Bonjour le monde !','o',1)= B
SubString_Index('Bonjour le monde !',' ',4)= Bonjour le monde !
SubString_Index('Bonjour le monde !',' ',7)= Bonjour le monde !

Prenons pour base la table «matable» avec le contenu suivant :

id contenu
1 {s:7:"MyID";"2594";s:3:"rel";s:1:"1"}
2 {s:7:"abc";s:4:"345";s:3:"rel";MyID:2745:"2"}
3 {s:7:"abc";s:4:"345";s:3:"rel";MyID:2633:"2"}

Si vous voulez retourner tous les champs «MyID» de cette table vous entrez donc les instructions suivantes :

  1. SELECT id,LOCATE('MyID',contenu),SUBSTRING(contenu,LOCATE('MyID',contenu)) FROM `matable` WHERE contenu LIKE '%MyID%'

Un peu à la manière des meta d'un WordPress, Sachant que la table «generic_table» contient les données suivantes :

id properties
1 a:2:{s:13:"url_canonique";s:93:"http://www.gladir.com/CODER/C/page-test-ceci-est-un-article-exemple-avec-url-canonique-0001/1";s:21:"site_source_canonique";i:3;}
2 a:2:{s:13:"url_canonique";s:93:"http://www.gladir.com/CODER/B/page-test-ceci-est-un-article-exemple-avec-url-canonique-0002/1";s:21:"site_source_canonique";i:3;}

On utilisera la requête suivante :

  1. SELECT id,SUBSTRING( SUBSTRING( SUBSTRING( properties, LOCATE(  'url_canonique', properties ) ) , LOCATE(  'http://', SUBSTRING( properties, LOCATE(  'url_canonique', properties ) ) ) ) , 1, LOCATE(  '";s:', SUBSTRING( SUBSTRING( properties, LOCATE(  'url_canonique', properties ) ) , LOCATE(  'http://', SUBSTRING( properties, LOCATE(  'url_canonique', properties ) ) ) ) ) -1 ) AS urlArticle FROM generic_table

On obtiendra le résultat suivant :

id urlArticle
1 http://www.gladir.com/CODER/C/page-test-ceci-est-un-article-exemple-avec-url-canonique-0001/1
2 http://www.gladir.com/CODER/B/page-test-ceci-est-un-article-exemple-avec-url-canonique-0002/1

Voir également

Article - Les géants de l'informatique - Oracle

Dernière mise à jour : Mercredi, le 29 avril 2015