Mysql
 sql >> Database >  >> RDS >> Mysql

Equivalente a explore() per lavorare con le stringhe in MySQL

MySQL non ha explode() come funzione integrata. Ma puoi facilmente aggiungere una funzione simile al tuo DB e quindi usarla da query php. Quella funzione sarà simile a:

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, '');

Utilizzo:

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

L'esempio sopra restituirà apple .Penso che sarà impossibile restituire un array in MySQL, quindi devi specificare quale occorrenza restituire esplicitamente in pos . Fammi sapere se riesci ad usarlo.