0

我有一个带有未知数量的括号数字的大型 MYSQL 表。

例如:“现在地球 [1] 无形和空虚......”

该号码最多可以是 3 位数字。

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

4

2 回答 2

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

于 2013-02-16T23:13:29.333 回答
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

您可能需要稍微调整一下正则表达式。

于 2013-02-17T00:32:18.573 回答