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

Équivalent d'exploser() pour travailler avec des chaînes dans MySQL

MYSQL n'a pas de explode() comme la fonction intégrée. Mais vous pouvez facilement ajouter une fonction similaire à votre base de données, puis l'utiliser à partir de requêtes php. Cette fonction ressemblera à :

CREATE FUNCTION SPLIT_STRING(str VARCHAR(255), delim VARCHAR(12), pos INT)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(str, delim, pos),
       CHAR_LENGTH(SUBSTRING_INDEX(str, delim, pos-1)) + 1),
       delim, '');

Utilisation :

SELECT SPLIT_STRING('apple, pear, melon', ',', 1)

L'exemple ci-dessus renverra apple .Je pense qu'il sera impossible de renvoyer un tableau dans MySQL, vous devez donc spécifier quelle occurrence renvoyer explicitement dans pos . Faites-moi savoir si vous réussissez à l'utiliser.