LOCATE |
Emplacement |
---|---|
MySQL |
Syntaxe
Locate(Sous-Chaine,Chaine [,PositionDépart]) |
Paramètres
Nom | Description |
---|---|
Sous-Chaine | Ce paramètre permet d'indiquer la chaine de caractères contenant la chaine à rechercher |
Chaine | Ce paramètre permet d'indiquer la chaine de caractères contenant la source dans lequel il faudra chercher |
PositionDépart | Ce paramètre permet d'indiquer la position en nombre de caractères de début où commence la recherche |
Description
Cette fonction retourne la position d'une sous-chaîne de caractères contenus dans une chaine de caractères et 0 si elle ne s'y trouve pas.
Remarques
- Si vous souhaitez faire du traitement professionnel pour une application avec le format JSON en passant par MySQL, vous devriez envisager d'utiliser la bibliothèque «libmy_json_udf.so» du «http://labs.mysql.com/».
- Si vous souhaitez faire du traitement professionnel pour une application avec le format serialize/unserialize du PHP en passant par MySQL, vous devriez envisager d'utiliser la bibliothèque «unserialize_php.so» du «https://github.com/junamai2000/mysql_unserialize_php».
Exemples
Voici quelques exemples typiques de l'utilisation de cette fonction :
- SELECT 'Locate("Mal","Sylvain Maltais")= ' As Text, Locate('Mal','Sylvain Maltais') As Result UNION
- SELECT 'Locate("a","Sylvain Maltais") = ' As Text, Locate('a','Sylvain Maltais') As Result UNION
- SELECT 'Locate("a","Sylvain Maltais",1) = ' As Text, Locate('a','Sylvain Maltais',1) As Result UNION
- SELECT 'Locate("a","Sylvain Maltais",8) = ' As Text, Locate('a','Sylvain Maltais',8) As Result
on obtiendra le résultat suivant :
Text | Result |
---|---|
Locate("Mal","Sylvain Maltais")= | 9 |
Locate("a","Sylvain Maltais") = | 5 |
Locate("a","Sylvain Maltais",1) = | 5 |
Locate("a","Sylvain Maltais",8) = | 10 |
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 :
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 :
- 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
Références
MySQL - Référence, Edition Micro Application, Nicolas Rivereau, Antoine Pichot, 2002, ISBN: 2-7429-2560-0, page 934.
MySQL: The definitive guide to using, programming, and administering MySQL 4 databases - Second Edition, Paul Dubois, 2003, ISBN: 0-7357-1212-3, page 813