我有一张约500k排的桌子;varchar(255)UTF8第filename
列包含一个文件名;
我试图从文件名中go 掉各种奇怪的字符——我想使用字符类:[^a-zA-Z0-9()_ .\-]
现在,is there a function in MySQL that lets you replace through a regular expression?我正在寻找一个类似的函数来替换()函数-简化示例如下:
SELECT REPLACE('stackowerflow', 'ower', 'over');
Output: "stackoverflow"
/* does something like this exist? */
SELECT X_REG_REPLACE('Stackoverflow','/[A-Zf]/','-');
Output: "-tackover-low"
我知道大约REGEXP/RLIKE个,但是只有if个是匹配的,不是what个.
(我从一个PHP脚本中做了一个"SELECT pkey_id,filename FROM foo WHERE filename RLIKE '[^a-zA-Z0-9()_ .\-]'
",做了一个"preg_replace
",然后做了一个"UPDATE foo ... WHERE pkey_id=...
",但这看起来像是最后一次缓慢而丑陋的黑客攻击)