2016-03-03 360 views
0

我想从MySQL表中删除特殊字符,但使用UTF8字符(如阿拉伯语)。MySQL使用正则表达式删除特殊字符

这是去除常见的特殊字符,如“'@!* $等

我已经使用PHP中伟大的工程以下。

preg_replace('/(?=\P{Nd})\P{L}/u', '', $name); 
+0

仅供参考,关于这些角色没有什么“特殊”... – deceze

回答

0

您可以使用更新的行同样的正则表达式进行比较。

在MySQL中的字符串的正则表达式运算符REGEXP和RLIKE。 我希望,这应该解决您的问题。:)

+0

类似这样的东西? (尽管这不起作用) 'UPDATE'accounts'.'accounts' SET' name' = REPLACE('name','/(?= \ P {Nd})\ P {L}/u', '') WHERE'name' REGEXP'/(?= \ P {Nd})\ P {L}/u'; ' – user2508669

+0

是的,查询似乎是正确的。 – Prashant

+0

而且,您也可以使用LIKE。据说使查询速度比使用REGEXP进行比较要快。 – Prashant