如何在MySQL中替换正则表达式?
我有一张约500k行的桌子; varchar(255)UTF8列filename包含文件名;
我试图从文件名中删除各种奇怪的字符 - 我以为我会使用一个字符类: [^a-zA-Z0-9()_ .\-]
现在,MySQL中是否有一个函数可以让你通过正则表达式替换?我正在寻找与REPLACE()函数类似的功能 - 简化示例如下:
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=...”,但这看起来像一个最后的缓慢和丑陋的黑客)
慕村225694
MM们
慕姐4208626
相关分类