sql >> Databasteknik >  >> RDS >> Mysql

Ersätta värde inom en kommaavgränsad sträng i MySQL?

Hmm... kanske det här?

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

Byt ut saker efter behov, men det borde nästan göra det.

REDIGERA :Sammanfogat till en fråga:

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

Den där +1 kan behöva vara +2 , jag är inte säker, men det borde fungera.



  1. SQL-fråga för att få delsumman för vissa rader

  2. Returnera språket som används för datum- och tidsfunktioner i MariaDB

  3. Hur man importerar XML-fil till MySQL-databastabell med XML_LOAD(); fungera

  4. Med Oracle SQL, hur matar man ut dagnummer veckodag och veckodag?