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

Sostituire il valore all'interno di una stringa delimitata da virgole in MySQL?

Hmm... forse questo?

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

Sostituisci le cose secondo necessità, ma dovrebbe quasi farlo.

MODIFICA :unito in una query:

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

Quel +1 potrebbe essere necessario essere +2 , non ne sono sicuro, ma dovrebbe funzionare.