sql >> Database >  >> RDS >> Mysql

Waarde vervangen binnen een door komma's gescheiden tekenreeks in MySQL?

Hmm... misschien dit?

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

Vervang dingen als dat nodig is, maar dat zou het ongeveer moeten doen.

BEWERKEN :Samengevoegd in één zoekopdracht:

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

Dat +1 moet mogelijk +2 zijn , ik weet het niet zeker, maar dat zou moeten werken.



  1. MySQL:verwijder rijen die een specifieke parameter bevatten en ouder zijn dan een dag

  2. Zijn mijn MySQL-serververbindingen versleuteld en veilig?

  3. MySQL selecteer een veld uit de tabel WAAR de voorwaarde in meerdere rijen staat

  4. Hoe meerdere databases te verbinden in PHP, MYSQLi &PDO