删除MYSQL表中包含未知内容的括号


Remove brackets with unknown content in MYSQL Table

我有一个大的MYSQL表,其中包含未知数量的方括号数字。

例如:"现在地球是无形的、空的……"

数字最多可以是3位数字。

当我不知道数字是什么时,是否可以编写一个同时删除括号和数字的查询?

试试这个,希望它能帮助你:

<?php
$str = "Just random [4] stuff with [56] random nums [000]" ;     
$clean = preg_replace("/('[[0-9]+'])/", "", $str) ;
echo $clean ; //Outputs: Just random  stuff with  random nums
?>

从数据库中获取数据并进行替换。

或者,您可以只编写一个脚本来修改数据库值:使用SELECT获取标识符和字符串。然后进行更换。使用UPDATE更新数据库中的表。

如果是一次性的,您可以执行以下操作:

  • 将表转储到文件mysqldump -u user -p dbname --no-create-info mytable > /tmp/mytabledump.sql
  • 使用sed替换sed -e 's/'['([0-9]*')']//g' mytabledump.sql > mytableclean.sql
  • 截断表mysql -u user -p dbname -e "TRUNCATE TABLE mytable;"
  • 导入数据mysql -u user -p dbname < /tmp/mytableclean.sql

您可能需要稍微调整一下regexp。