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

Substituir o valor dentro de uma string delimitada por vírgulas no MySQL?


Hmm... talvez isso?
SELECT @before := CONCAT(SUBSTRING_INDEX(`columnname`,',',3),','),
       @len := LENGTH(SUBSTRING_INDEX(`columnname`,',',4)+1
FROM `tablename` WHERE ...;

SELECT CONCAT(@before,'newstring',SUBSTRING(`columnname`,@len+1)) AS `result`
FROM `tablename` WHERE ...;

Substitua as coisas conforme necessário, mas isso deve fazer isso.

EDITAR :Mesclado em uma consulta:
SELECT
    CONCAT(
        SUBSTRING_INDEX(`columnname`,',',3),
        ',newstring,',
        SUBSTRING(`columnname`, LENGTH(SUBSTRING_INDEX(`columnname`,',',4)+1))
    ) as `result`
FROM `tablename` WHERE ...;

Esse +1 pode precisar ser +2 , não tenho certeza, mas isso deve funcionar.