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

Vil du erstatte værdi inden for en kommasepareret streng i MySQL?

Hmm... måske det her?

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

Udskift tingene efter behov, men det burde bare gøre det.

REDIGER :Slået sammen til én forespørgsel:

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

Den +1 skal muligvis være +2 , Jeg er ikke sikker, men det burde virke.



  1. Forskellige CURRENT_TIMESTAMP og SYSDATE i oracle

  2. Bulk Insert i Oracle-database:Hvad er bedre:FOR Cursor loop eller en simpel Select?

  3. Får PHP-fejl Advarsel:fputcsv() forventer, at parameter 2 er array

  4. Sådan overvåger du forbindelsespooling for .NET MySQL Data Connector i IIS