sql >> Databáze >  >> RDS >> Mysql

Nahradit hodnotu v řetězci odděleném čárkou v MySQL?

Hmm... možná tohle?

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

Vyměňte věci podle potřeby, ale to by se mělo udělat.

UPRAVIT :Sloučeno do jednoho dotazu:

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

To +1 může být potřeba +2 , Nejsem si jistý, ale mělo by to fungovat.



  1. Žebříček s miliony záznamů

  2. Compex MySQL Left Join pomocí více položek z meta tabulek

  3. vrátit prázdné řádky pro neexistující data

  4. Jak nakonfigurovat Ruby on Rails s Oracle?