変えたい
{foo, {bar}, foobar}
に
{foo, bar, foobar}
に一致するすべての行で'{.*{'
。つまり、最も外側のペアを除くすべての中括弧{と}を削除します。
そうすること
mysql -h $H -u $U -p$P $DB -B -e "SELECT id FROM t WHERE col REGEXP '{.*{'" > bad.txt
この置換が必要なすべての行を選択します。この置換を非常に迅速に行うにはどうすればよいですか?
編集:
私はそれをすることができます
update table set column = REPLACE(column,'{','');
次に、最も外側のペアを復元します
update table set column = REPLACE(column,'^','{');
update table set column = REPLACE(column,'$','}');
エラーが発生します
mysql> EXPLAIN UPDATE t SET col=REPLACE(REPLACE(REPLACE(REPLACE(col,'{{','{'),'}}','}'), ', {', ', '), '}, ', ', ');
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE t SET col=REPLACE(REPLACE(REPLACE(REPLACE(' at line 1