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

Fractionner des chaînes à l'aide de mysql

MySQL n'inclut pas de fonction pour diviser une chaîne délimitée. Cependant, il est très facile de créer votre propre fonction.

Fonction définie par l'utilisateur :

CREATE [AGGREGATE] FUNCTION function_name
RETURNS {STRING|INTEGER|REAL|DECIMAL}

Fonction :

CREATE FUNCTION SPLIT_STR(
  x VARCHAR(255),
  delim VARCHAR(12),
  pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
       LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
       delim, '');

Utilisation :

SELECT SPLIT_STR(string, delimiter, position)