我有一张约500k行的桌子;varchar(255)UTF8列
filename
包含一个文件名;
我试图从文件名中去掉各种奇怪的字符-我想我应该使用一个字符类:
[^a-zA-Z0-9()_ .\-]
现在
MySQL中是否有一个函数允许您通过正则表达式进行替换
? 我正在寻找一个类似的函数来替换()函数-简化示例如下:
SELECT REPLACE('stackowerflow', 'ower', 'over');
Output: "stackoverflow"
/* does something like this exist? */
SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-');
Output: "-tackover-low"
我知道
REGEXP/RLIKE
,但这些只是检查
如果
有火柴,不是吗
比赛很激烈。
能够
做一个“
SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]'
“从PHP脚本中,执行以下操作:
preg_replace
然后“
UPDATE foo ... WHERE pkey_id=...
“,但这看起来像是最后的手段(缓慢而丑陋的黑客行为)