1

正規表現は置換に使用できませんが、正規表現として動作する複数の置換についてはどうですか

UPDATE `usertree` SET branchIndex=REPLACE(branchIndex,'80',''),
branchIndex=REPLACE(branchIndex,',,',',') WHERE id=1

うまく機能していますが、欠点はありますか? あとで困ります

私の新しい木のゲームには、かなりの数のテクノロジーが付属しています。

追加された枝を列名 branchIndex に保存しています。これは、ツリー上の枝の位置を保持するカンマ区切りの文字列です。

しかし、ユーザーが枝を切るときは、文字列からそのインデックスを削除し、さらに文字列を正確に保つ必要があります。また、2000 人から 3000 人を超えるユーザーによって、より頻繁に発生します。

4

2 に答える 2

1

同じ列で複数の置換を行いたい場合は、次のように記述します。

SET branchIndex = REPLACE(REPLACE(branchIndex, '80', ''), ',,', ',')

ただし、カンマ区切りの文字列ではなく、ブランチを別のテーブルに配置する方がよいでしょう。次に、テーブルから行を追加および削除するだけです。

于 2012-10-25T07:38:28.987 に答える
0

これらの手順は 1 回の実行で実行できます。

SELECT REPLACE(CONCAT(',','80,138,149,145,120,180,280',','), ',80,', ',');

次のようにしてください。

SELECT TRIM(BOTH ',' FROM REPLACE(CONCAT(',','80,138,149,145,120,180,280',','), ',80,', ','));
于 2012-11-01T07:34:56.897 に答える