Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ersetzen Sie den Wert in einer durch Kommas getrennten Zeichenfolge in MySQL?

Hmm... vielleicht das?

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

Ersetzen Sie die Dinge nach Bedarf, aber das sollte gerade noch reichen.

BEARBEITEN :Zu einer Abfrage zusammengeführt:

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

Dieses +1 muss möglicherweise +2 sein , ich bin mir nicht sicher, aber das sollte funktionieren.