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

时间:2013-02-16 22:54:59

标签: php mysql database

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

Ex:“现在地球已经[1]无形且空洞......”

该号码最多可达3位数。

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

2 个答案:

答案 0 :(得分:1)

试试这个,希望它可以帮到你:

<?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更新数据库中的表。

答案 1 :(得分:0)

如果这是一次性的事情你可以做以下事情:

  • 将您的表格转储到文件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。