我有一个大型的MYSQL表,其中包含未知数量的括号。
Ex:“现在地球已经[1]无形且空洞......”
该号码最多可达3位数。
当我不知道这些数字是什么时,是否可以编写一个删除括号和数字的查询?
答案 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。