我想改变
{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