Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Equivalente a explodir () para trabalhar com strings no MySQL


MYSQL não tem explode() como função incorporada. Mas você pode facilmente adicionar uma função semelhante ao seu banco de dados e usá-la a partir de consultas php. Essa função ficará assim:
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, '');

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

O exemplo acima retornará apple .Eu acho que será impossível retornar array no MySQL então você deve especificar qual ocorrência retornar explicitamente em pos . Deixe-me saber se você conseguir usá-lo.