Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment fonctionne la fonction SUBSTR() dans MySQL

Dans MySQL, le SUBSTR() La fonction renvoie une sous-chaîne à partir de la position spécifiée.

Les deux SUBSTR() et MID() sont des synonymes de SUBSTRING() .

Syntaxe

La syntaxe de base ressemble à ceci :

SUBSTR(str,pos,len)

Ici, str est la chaîne, pos est la position à partir de laquelle commencer la sous-chaîne, et len est un argument facultatif qui détermine le nombre de caractères à renvoyer à partir de cette position de départ.

Il existe plusieurs variantes sur la façon dont vous pouvez utiliser cette fonction, donc la gamme complète de syntaxes ressemble à ceci :

SUBSTR(str,pos)
SUBSTR(str FROM pos)
SUBSTR(str,pos,len)
SUBSTR(str FROM pos FOR len)

Ceux-ci sont illustrés dans les exemples suivants.

Exemple 1 - Utilisation de base

Voici un exemple de SUBSTR(str,pos) syntaxe :

SELECT SUBSTR('I play the drums', 3) Result;

Résultat :

+----------------+
| Result         |
+----------------+
| play the drums |
+----------------+

Dans cet exemple, je prends une sous-chaîne de la chaîne, en commençant à la position 3.

Exemple 2 – Utilisation de la clause FROM

Voici comment faire la même chose, mais cette fois en utilisant le SUBSTR(str FROM pos) syntaxe :

SELECT SUBSTR('I play the drums' FROM 3) Result;

Résultat :

+----------------+
| Result         |
+----------------+
| play the drums |
+----------------+

Nous obtenons donc le même résultat.

Dans ce cas, FROM est le SQL standard. Notez que cette syntaxe n'utilise pas de virgules.

Exemple 3 - Spécifier une longueur

Dans cet exemple, j'utilise le SUBSTR(str,pos,len) syntaxe :

SELECT SUBSTR('I play the drums', 3, 4) Result;

Résultat :

+--------+
| Result |
+--------+
| play   |
+--------+

Ici, je précise que la sous-chaîne renvoyée doit comporter 4 caractères.

Exemple 4 - Spécifier une longueur (à l'aide de la clause FOR)

Dans cet exemple, j'utilise le SUBSTR(str FROM pos FOR len) syntaxe :

SELECT SUBSTR('I play the drums' FROM 3 FOR 5) Result;

Résultat :

+--------+
| Result |
+--------+
| play   |
+--------+

Donc, cette fois, nous avons utilisé le SQL standard pour obtenir le même résultat