sql >> データベース >  >> RDS >> Mysql

MySQLのコンマ区切り文字列内の値を置き換えますか?

    うーん...多分これ?

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

    必要に応じて交換しますが、それで十分です。

    編集 :1つのクエリにマージ:

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

    その+1 +2である必要がある場合があります 、わかりませんが、うまくいくはずです。



    1. SQLServerトランザクションレプリケーションの問題のトラブルシューティング

    2. postgresでテーブル(インデックスを含む)をコピーします

    3. JPA、Hibernateを使用したPostgreSQLの継承

    4. SQL Serverの.bakファイルをMySQLにインポートする方法は?