問題の説明:
問題: プロジェクト内のカンマ区切り文字列内の指定された文字を変更および削除する場合、他の文字は使用できません。原因分析:
SQL ステートメントのスペルが間違っています。replace() の 3 番目のパラメータは省略されており、省略されています。間違った書き方: update 表名
set 字段名= TRIM(BOTH ',' FROM replace(concat(',', 字段名, ','), #{传入的字符}, ''))
mybatis では、正しい動的 SQL は次のとおりです。
update 表名
set 字段名= TRIM(BOTH ',' FROM replace(concat(',', 字段名, ','), #{传入的字符}, ','))
ps: 入力文字は、削除する必要がある文字です。この文字の前後でカンマを接続する必要があることに注意してください。ソリューションの devid の文字 12 を削除する必要がある場合、入力文字は ',12, ' である必要があります。
解決:
以下のSQLを比較したところ、構文エラーが見つかりました。
mysqlでフィールド内の文字を削除する方法
テーブル名がuserの場合、テーブルは次のようになります
ID | デビッド |
---|---|
1 | 1、2、3、12、13、14 |
テーブル user の devid フィールドの値 1 を削除する場合、12、13、および 13 は削除できないことに注意してください。
SQL 構文は次のとおりです。
update user
set devid = trim(両方 ',' from replace(concat(',', devid, ','), ',1,', ','))
からの抜粋 (削除): https://www.cnblogs.com/xiede/p/9369578.html