11

我想从我的桌子上删除一些东西1) 32) 121) 1000)...格式是number+)

我试过这段代码。

UPDATE articles SET 
title= REPLACE(title,'\d)', '' ) 
WHERE title regexp "\d)*"

什么都没发生phpmyadmin,怎么写正确?谢谢。

4

4 回答 4

8

你不能:Mysql 不支持基于正则表达式的替换。

请参阅此 SO question以了解解决方法。

于 2012-05-05T19:37:22.067 回答
1

最后,我使用了一些php,以一种快速的方法解决了这个问题。

for ($i=1; $i<=9999; $i++){
 $my_regex = $i.')';
 mysql_query("UPDATE articles SET title = REPLACE(title,'".$i."', '' ) where title like '%".$i."%'");
}
于 2012-05-05T20:07:04.897 回答
0

作为替代方案,根据表格的大小,您可以使用substring函数来解决问题。

于 2012-05-05T19:40:26.607 回答
0

我有一个独特的要求,我需要替换非活动的所有者用户名。其中用户名包含INACITVE,后跟村庄 ID。所以我在 replace() 函数中使用了 concat() 函数来动态替换。

 update Owner set username = replace(username, concat('_INACTIVE_',village_id) ,'') 
where village_id = 3363010;
于 2021-11-30T07:21:28.290 回答