sql >> Base de Datos >  >> RDS >> Mysql

¿Reemplazar el valor dentro de una cadena delimitada por comas en MySQL?

Hmm... ¿quizás esto?

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 ...;

Reemplace las cosas según sea necesario, pero eso debería bastar.

EDITAR :Fusionado en una consulta:

SELECT
    CONCAT(
        SUBSTRING_INDEX(`columnname`,',',3),
        ',newstring,',
        SUBSTRING(`columnname`, LENGTH(SUBSTRING_INDEX(`columnname`,',',4)+1))
    ) as `result`
FROM `tablename` WHERE ...;

Ese +1 puede necesitar ser +2 , no estoy seguro, pero eso debería funcionar.