我有一个大约有500k行的表;UTF8列filename
包含一个文件名;
我试图从文件名中剥离出各种奇怪的字符-我想我会使用一个字符类:[^a-zA-Z0-9()_ .\-]
现在,# EYZ0 ?我正在寻找一个类似的功能REPLACE()函数-简化的例子如下:
SELECT REPLACE('stackowerflow', 'ower', 'over');
Output: "stackoverflow"
/* does something like this exist? */
SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-');
Output: "-tackover-low"
我知道正则表达式/ RLIKE,但那些只检查如果有一个匹配,而不是什么的匹配。
(我可以做一个“SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]'
”从一个PHP脚本,做一个preg_replace
,然后“UPDATE foo ... WHERE pkey_id=...
”,但这看起来像一个最后的手段慢&丑陋的黑客)